需要包含的头文件: <fstream>,名字空间: std。
fstream提供了三个类,用来实现c++对文件的操作(文件的创建,读写):
ifstream -- 从已有的文件读
ofstream -- 向文件写内容
fstream - 打开文件供读写
支持的文件类型可以分为两种: 文本文件和二进制文件。
文本文件保存的是可读的字符, 而二进制文件保存的只是二进制数据。利用二进制模式,你可以操作图像等文件。用文本模式,你只能读写文本文件。否则会报错。
例一: 写文件
#include <fstream.h>
void main
{
ofstream file;
file.open("file.txt");
file<<"Hello file/n"<<75;
file.close();
}
例二: 读文件
#include <fstream.h>
void main
{
ifstream file;
char output[100];
int x;
file.open("file.txt");
file>>output;
cout<<output;
file>>x;
cout<<x;
file.close();
}
上面所讲的ofstream和ifstream只能进行读或是写,而fstream则同时提供读写的功能。
void main()
{
fstream file;
file.open("file.ext",iso::in|ios::out)
//do an input or output here
file.close();
}
open函数的参数定义了文件的打开模式。总共有如下模式
ios::in 读
ios::out 写
ios::app 从文件末尾开始写
ios::binary 二进制模式
ios::nocreate 打开一个文件时,如果文件不存在,不创建文件。
ios::noreplace 打开一个文件时,如果文件不存在,创建该文件
ios::trunc 打开一个文件,然后清空内容
ios::ate 打开一个文件时,将位置移动到文件尾
Notes
- 默认模式是文本
- 默认如果文件不存在,那么创建一个新的
- 多种模式可以混合,用|(按位或)
- 文件的byte索引从0开始。(就像数组一样)
我们也可以调用read函数和write函数来读写文件。可参见:
https://www.tsingfun.com/it/cpp/all_programming_language_file_read_write_summary.html#C