第9章流类库与输入输出

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第9章流类库与输入输出

9.1 本章提要

(1)C++语言提供一个用于输入/输出(I/O)操作的类族,这些操作是以对数据敏感

的方式实现的。类族提供了对预定义类型进行输入/输出操作的能力,程序员也

可以利用这个类族进行自定义类型的输入/输出操作。

(2)标准输出操作方法

①将插入符作用在流对象cout上,可输出显示整型数、浮点数,字符和字符串。

②使用成员函数put( )可输出一个字符

③使用成员函数write( )可输出一个字符串

(3)标准输入操作方法

①将提取符作用在流对象cin上,可输入整型数、浮点数、字符和字符串。

②使用成员函数get( )可输入一个字符,使用成员函数getline( )可输入—行字符。

③使用成员函数read( )可读取一个字符串。

(4)格式化输入输出的两种方式

①使用标志字和成员函数

②使用操作子

(5)磁盘文件的输入和输出,包括:

①磁盘文件的打开和关闭操作

②文本文件的读写操作

③二进制文件的读写操作

④随机访问数据文件

9.2 程序举例

下面是一个展示用不同方法(使用重载运算符和成员函数)对标准的输入输出流对象(cin和cout)进行操作的例子。

例9-1 用不同方法操作流对象

//ch9_1.cpp 标准设备的输入输出

#include

void main()

{

char buffer1[80],buffer2[80],buffer3[80];

cout<<"Please enter a sentence:"<

cin>>buffer1;

cout<

cin.getline(buffer1,80); //clear buffer

cout<<"Please enter a sentence:"<

cin.getline(buffer2,80);

cout<

cout<<"Please enter a sentence:"<

cin.read(buffer3,10);

cout.write(buffer3,cin.gcount());

}

运行结果:

Please enter a sentence:

Welcome to C++.↙

Welcome

Please enter a sentence:

Welcome to C++.↙

Welcome to C++.

Please enter a sentence:

Welcome to C++.↙

Welcome to

在这个程序中,出现了以下几个对输入输出流进行操作的成员函数。getline():读取一行字符串

read():读取指定字符个数的字符中

write():输出显示指定字符个数的字符串。

下面是一个使用格式化标志进行格式控制操作的例子。

例9-2 使用格式化标志进行格式控制

//ch9_2.cpp 使用格式化标志进行格式控制

#include "iostream.h"

#include

void main()

{

//设置整数流的格式和基数

int x=123;

cout<<"dec: "<

<<"oct: "<

<<"hex: "<

cout<

<<"dec: "<

<<"oct: "<

<<"hex: "<

//设置浮点数流的格式

double a=0.1234567,b=5.5614e8;

cout<

cout.setf(ios::scientific,ios::floatfield); //设置为科学表示法

cout<

cout.unsetf(ios::scientific); //清除科学表示法cout<

cout.setf(ios::fixed,ios::floatfield); //采用定点数形式

cout<

cout.unsetf(ios::fixed); //清除定点数形式

//设置大小写控制

cout<<5.67e5<<','<

cout.setf(ios::uppercase); //设置为大写

cout<<5.67e5<<','<

//设置对齐方式和填充字符

int y=565134;

cout.fill('*'); //采用*为填充字符

cout<

cout.setf(ios::left,ios::adjustfield); //设置为左对齐

cout<

cout.fill(' '); //采用空格为填充字符

cout<

}

运行结果:

dec: 123 , oct: 173 , hex: 7b

dec: 123 , oct: 0173 , hex: 0x7b

0.123457,5.5614e+008

1.234567e-001,5.561400e+008

0.123457,5.5614e+008

0.123457,556140000.000000

567000,0xa7b7a

567000,0XA7B7A

****565134

565134****

相关文档
最新文档