文件读取流和文件写入流
数据类型 | 描述 |
ofstream | 该数据类型表示输出文件流,用于创建文件并向文件写入信息 |
ifstream | 该数据类型表示输入文件流,用于文件流读取信息 |
fstream |
该数据类型通常表示文件流,且同时具有ofstream和ifstream两种功能,这意味着它可以创建文件,向文件写入信息,从文件读取信息。 |
要在C++中进行文件处理,必须在C++源代码文件中包含头文件<iosttream>和<fstream>
打开文件
在从文件读取信息或向文件写入信息之前,必须先打开文件。ofstream和fstream对象可以用来打开文件进行写操作,如果只需要打开文件进行读操作,则使用ifstream对象
下面是open() 函数的标准语法,open() 函数是fstream、ifstream和ofstream对象的一个成员。
void open(const char *filename,ios::openmode mode);
在这里,open() 成员函数的第一个参数指定要打开的文件的名称和位置,第二个参数定义文件被打开的模式
模式标志 | 描述 |
ios::app | 追加模式。所有写入都追加到文件末尾 |
ios::ate | 文件打开后定位到文件末尾 |
ios::in | 打开文件用于读取 |
ios::out | 打开文件用于写入 |
ios::trunc | 如果文件已经存在,其内容将在打开文件之前被截取,即把文件长度设为0. |
可以把以上两种或者两种以上的模式结合使用,例如:如果想要以写入模式打开文件,并希望截取文件,以防文件已存在,那么可以使用下面的语法:
ofstream outfile;
outfile.open("file.bat",ios::out | ios::trunc);
类似地,如果想要打开一个文件用于读写,可以使用下面的语法:
ifstream afile;
afile.open("file.bat",ios::out | ios::in);
关闭文件
当C++ 程序终止时,它会自动关闭刷新所有流,释放所有内分配的内存,并关闭所有打开的文件。但程序员应该养成一个好习惯,在程序终止前关闭所有打开的文件。
下面是close() 函数的标准语法,close() 函数是fstream 、ifstream 和 ofstream 对象的一个成员。
void close();