C++文件流
C++ 通过以下几个类支持文件的输入输出:
- ofstream: 写操作(输出)的文件类 (由ostream引申而来)
- ifstream: 读操作(输入)的文件类(由istream引申而来)
- fstream: 可同时读写操作的文件类 (由iostream引申而来)
文件输出流:
ofstream 类支持磁盘文件输出。如果程序需要把数据信息输出到磁盘文件,可以构造一个ofstream 类的对象。在定义流对象的同时,指定相关联的文件;也可以先定义流对象,随后调用open成员函数,指定相关联的文件并打开。常用方法如下:
- 在调用构造函数时指定文件名,直接将文件流对象和磁盘文件相关联:
ofstream("filename.dat");
- 使用默认构造函数创建对象,再调用 open 成员函数建立对象和文件的关联:
也可以使用指针形式:ofstream f1;// 定义一个输出文件流对象 f1.open(<span style="font-family: Arial, Helvetica, sans-serif;">"filename.dat"</span><span style="font-family: Arial, Helvetica, sans-serif;">);//打开文件,使流对象与文件建立关联</span>
ofstream* pf = new ofstream; pf->open("filename.dat",iosmode);
f1<<"absdkf"<<endl;// 字符串写入文件
f1<<i<<endl; // 变量 i 写入文件
open 函数:
open 函数的参数通常要指定一个文件名,另外还要指定一个open_mode标志,如下表:
标志 | 功能 |
ios::app | 打开输出文件,尾部添加,若不存在则新建 |
ios::ate | 打开现存文件(入/出),并查找到结尾 |
ios::in | 打开输入文件,默认模式,可避免现有内容被删除 |
ios::out | 打开输出文件,默认模式 |
ios::nocreate | 存在则打开,否则操作失败 |
ios::noreplace | 不存在则新建并打开,否则操作失败 |
ios::trunc | 打开,存在则删除已有内容。若指定了ios::ou |