C++面向对象入门(四十三)流和流类库和文件流

流: 一个字节序列, 如果流向程序, 则称这个流为输入流; 如果流出程序, 则称为输出流. 流是一个抽象的概念, 当实际进行I/O操作时,
必须将流和一种具体的物理设备联结起来
流类库: C++将输入输出有关的操作定义为一个类体系, 并将其放在一个系统库内, 以备用户调用, 该类体系叫做流类, 提供流类实现的系统
被称为流类库
流类库的基本结构: 一个利用继承组织类层层次的典范. C++的流类库由几个进行I/O操作的基础类和几个支持特定源和目标的I/O操作的类组
成.
流类库的基本层次:
 
ios类是istream和ostream的虚基类, 提供对流进行格式化I/O的操作和错误处理的成员函数.
istream提供对流进行提取的操作
ostream提供对流进行插入的操作
iostream通过将类istream和ostream组合在一起来支持对一个流进行双向操作, 没有提供其他新函数
C++预定义的流:
cin(istream类对象):与标准输入设备相关联
cout(ostream类对象):与标准输出设备相关联
cerr(ostream类对象):与标准错误输出设备相关联(非缓存方式)
clog(ostream类对象):与标准错误输出设备相关联(缓冲方式)
操作系统默认标准输入输出设备:
标准输出设备:显示终端
标准输入设备:键盘
任何情况下:
标准错误输出设备:显示终端

 

 


支持文件的流类:
为了支持在程序这对文件进行操作,C++流类库在流类库基本类层次结构继承上, 又派生出了五个类
(fstreambase, ifstream, ofstream, fstream, filebuf )

 

 


fstreambase是文件流的共同基类, 程序中不使用该类进行文件操作, 派生自ios类
使用ifstream, ofstream, fstream 进行文件操作
ifstream从istream继承了读操作, 仅用于读文件, 派生自istream和fstreambse
ofstream从ostrea,继承了写操作, 仅用于写文件, 派生自ostream和fstreambse
fstream类用于对文件进行读写操作, 派生自iostream和fstreambse
filebuf派生自streambuf类, 负责管理文件操作的缓冲区
 
 
posted @ 2020-09-06 15:07  DNoSay  阅读(287)  评论(0编辑  收藏  举报