- 流对象与文件操作
- 程序建一个流对象
- 指定这个流对象与某个文件对象建立连接
- 程序操作流对象
- 流对象通过文件系统对连接的文件进行操作
- 提取与插入
- 读操作在流数据抽象中被称为(从流中)提取
- 写操作被称为(向流中)插入
- 最重要的三个输出流
- Ostream
- Ofstream
- Ostringstream
- 预定义的输出流对象
- Cout:标准输出流对象
- Cerr:标准错误输出,没有缓冲,发送给他的内容立即被输出
- Clog:类似于cerr,但是有缓冲,缓冲区满时被输出
- 构造输出流对象
- Ofstream类支持磁盘文件输出
- 如果在构造函数中指定一个文件名,当构造这个文件时,该文件是自动打开的
- Ofstream myFlie(“filename”);
- 可以在调用默认构造函数后使用open成员函数打开文件
- Ofstream myFile; //声明一个静态文件输出流对象
- myFile.open(“filename”); //打开文件,使流对象与文件建立关系
- 在构造对象或用open打开文件时可以指定模式
- Ofstream myFile(“filename”, ios_base::out|ios_base::binary);
- 插入(<<)运算符:为所有标准C++数据类型预先设计的,用于传送字节到一个输出流对象
- 操纵符(maniplator)
- 插入运算符与操纵符一起工作:控制输出格式
- 很多操纵符都定义在ios_base类中
- 控制输出宽度:在流中放入setw操纵符或调用width成员函数为每个项指定输出宽度
- Setw和width仅影响紧随其后的输出项,但其他流格式操纵符保持有效直到发生改变
- Dec、oct和hex操纵符设置输入和输出的默认进制
- 二进制文件流
- 使用ofstream构造函数中的模式参量指定二进制输出模式
- 以通常方式构造一个流,然后使用setmode成员函数,在文件打开后改变模式
- 通过二进制文件输出流对象完成输出
- 字符串输出流(ostringstream)
- 用于构造字符串
- 功能
- 支持ofstream类的除open、close外的所有操作
- Str函数可以返回当前已构造的字符串
- 典型应用:将数值转换为字符串
- 最重要的输入流类
- Istream类最适合用于顺序文本模式输入。Cin是其实例
- Ifstream支持磁盘文件输入
- Istringstream
- 字符串输入流
- 用于从字符串读取数据
- 在构造函数中设置要读取的字符串
- 功能:支持ifstream类的除open、close外的所有操作
- 典型应用:将字符串转为数值
- 两个重要的输入输出流
- 一个iostream对象可以是数据的源或目的
- 两个重要的IO流类都是从iostream派生的,它们是fstream和stringstream,这些类继承了前面描述的istream和ostream的功能
- fstream类
- Fstream类支持磁盘文件的输入和输出
- 如果需要在同一个程序中从一个特定磁盘文件读并写到该磁盘文件,可以构造一个fstream对象
- 一个fstream对象是有两个逻辑子流的单个流,两个子流一个用于输入,另一个用于输出
- stringstream类:支持面向字符串的输入和输出,可以用于对同一个字符串的内容交替读写,同样是由两个逻辑子流构成