文档介绍:第6章 I/O流类库
第6章 I/O流类库
流类库及其结构
流的格式化控制
流的出错处理
文件流操作
流类库及其结构
从文件到流
流类库结构
定义流对象
流对象cin和cout的操作
从文件到流
C语言是用文件系统作为程序与输入/输出设备间交互的接口,所有的输入/输出操作都抽象为对文件指针的操作和直接对文件的读写
C++提供了更高抽象层次的输入/输出机制,它用流(Stream)作为程序的系统调用接口
流确定了数据的生产者与数据的消费者之间的联系:从流中获取数据,称为提取操作;把数据送入流中,称为插入操作
流包含了四层概念:流类库、流类、流对象和流类成员
流类库结构
ios
ostream
istream
iostream
ifstream
istream_withassign
istrstream
filebuf
strstreambuf
stdiostreambuf
fstream
strstream
stdiostream
iostreambuf
ofstream
ostream_withassign
ostrstream
Iostream_init
基本类
·streambuf类:用以管理流的缓冲区
·ios类:提供格式、错误检测和状态信息;
·ostream类:用来创建输出流;
·istream类:用来创建输入流;
·iostream类:用来创建输入/输出流
流类库中的类及其对应的头文件
头文件
类名
含义
ios
流抽象类,I/O在用户方的接口,提供基本I/O高层操作,包含一个指向streambuf的指针
streambuf
抽象流缓冲区类,I/O在物理设备方的接口,具有缓冲区起始地址、读写指针、缓冲区读写操作:
istream
通用输入流类,提供各种输入方式和提取操作——从缓冲区取字符
ostream
通用输出流类,提供各种输出方式和插入操作——向缓冲区存字符
iostream
istream和ostream的组合
istream_withassign
标准输入流类
ostream_withassign
标准输出流类
iostream_initifstream
预定义的流初始化类
ifstream
输入文件流类
ofstream
输出文件流类
fstream
输入/输出文件流类
filebuf
磁盘文件的流缓冲区类
istrstream
输入字符串流类
ostrstream
输出字符串流类
strstream
输入/输出字符串流类
strstreambuf
字符串流缓冲区类
stdiostream
标准I/O文件的输入/输出类
stdiostreambuf
标准I/O文件的流缓冲区类
定义流对象
,把4个预定义的开放流声明为withassign类的对象:
extern istream_withassign cin;
extern ostream_withassign cout;
extern ostream_withassign cerr;
extern ostream_withassign clog;
· cin是istream-withassign类的对象,称为标准输入流,缺省时键盘为数据源,也可以重定向为其他设备;
· cout是ostream-withassign类的对象,称为标准输出流,缺省时显示器为数据池,也可以重定向为其他设备;
· cerr和clog是ostream-withassign类的对象,称为标准错误输出流,固定关联到显示器
流对象cin和cout的操作
流对象cin和cout的操作主要由定义它们的类istream和ostream的成员函数决定。了解了这两个类定义的成员函数,就会知道流对象cin和cout可以进行的主要操作
类istream的定义
1)提取运算符“>>”定义在istream类中,并且对所有的预定义类型都给出了其重载定义
2)对于istream类中定义的其他成员函数,流对象可以使用分量运算符引用,即采用格式:
cin . 成员函数名()