C++提供了fstream
标准库,在使用之前需要引入头文件<fstream>
和<iostream>
。fstream
标准库提供了3个类用于实现文件操作,统称为文件流类:
ifstream
:专用于从文件中读取数据;ofstream
:专用于向文件中写入数据;fstream
:既可用于从文件中读取数据,又可用于向文件中写入数据。
打开文件的函数open()
open()函数的语法格式为
open(const char*filename, ios∷openmode mode);
第一参数指定要打开的文件的名称和位置,第二个参数定义文件被打开的模式(如下表所示):
模式标志 | 描述 |
---|---|
ios::app | 追加模式。所有写入都追加到文件末尾 |
ios::ate | 文件打开后定位到文件末尾 |
ios::in | 打开文件用于读取 |
ios::out | 打开文件用于写入 |
ios::trunc | 如果该文件已经存在,其内容将在打开之前被截断,即把文件长度设为0 |
在使用时可以把两种或两种以上的模式结合使用,每种模式之间用 |
分隔。
在打开文件后需要检测文件输入是否正常打开。
关闭文件的函数close()
当 C++ 程序终止时,它会自动关闭刷新所有流,释放所有分配的内存,并关闭所有打开的文件。但程序员应该养成一个好习惯,在程序终止前关闭所有打开的文件。close()
函数是 fstream
、ifstream
和 ofstream
对象的一个成员,通过对象直接调用即可:
//创建一个输入流对象
ofstream outfile;
//文件的打开模式采用 out 和trunc 两种模式
outfile.open("file.txt", ios::out | ios::trunc);
//检测文件打开是否正常
if (!outfile.is_open()) {
cout << "打开文件失败!!\n";
return; // 返回异常;
}
//关闭文件
outfile.close();