C++流的概念[一]
C++流的概念
流是通过一个缓冲机制,将数据从一个对象(生产者)传送到另一个对象(消费者)这一流动过程的抽象。在C++中,把标准输入设备和输出设备的输入/输出简称为标准I/O,对在外存(如硬盘)上文件的输入/输出简称为文件I/O,对内存中指定的字符串存储空间的输入/输出简称为串I/O。标准C++提供了几个类用于实现流抽象数据类型,将实现流的这些类统称流类库。使用流类库可以方便地实现多种I/O 操作。流类库包括的类有ios,istream,ostream,iostream,ifstream,ofstream,fstream,istrstream,ostrstream,strstream 等,其中ios 为根基类,其余的
都是它的直接或间接派生类。类库中包含的所有类以及继承关系如图3.1 所示。
图 3.1 C++所有输入/输出类的继承关系
从图3.1 中可以看出,根基类ios 直接派生4 个类:输入流类istream,输出流类ostream,文件流基类fstreambase 和字符串流基类strstreambase。输入文件流类ifstream 同时继承了输入流类和文件流基类(对于根基类是间接继承);输出文件流类ofstream 同时继承了输出流类和文件流基类;输入字符串流类istrstream 同时继承了输入流类和字符串流基类,输出字符串流类ostrstream 同时继承了输出流类和字符串流基类;输入/输出流类iostream 同时继承了输入流类和输出流类;输入/输出文件流类fstream 同时继承了输入/输出流类和文件流基类;输入/输出字符串流类strstream 同时继承了输入/输出流类和字符串流基类。