如何从文件读取流和向文件写入流。这就需要用到 C++ 中另一个标准库 fstream,它定义了三个新的数据类型:
| 数据类型 | 描述 |
|---|---|
| ofstream | 该数据类型表示输出文件流,用于创建文件并向文件写入信息。 |
| ifstream | 该数据类型表示输入文件流,用于从文件读取信息。 |
| fstream | 该数据类型通常表示文件流,且同时具有 ofstream 和 ifstream 两种功能,这意味着它可以创建文件,向文件写入信息,从文件读取信息。 |
在从文件读取信息或者向文件写入信息之前,必须先打开文件。ofstream 和 fstream 对象都可以用来打开文件进行写操作,如果只需要打开文件进行读操作,则使用 ifstream 对象。
下面是 open() 函数的标准语法,open() 函数是 fstream、ifstream 和 ofstream 对象的一个成员
void open(const char *filename, ios::openmode mode);关闭文件
当 C++ 程序终止时,它会自动关闭刷新所有流,释放所有分配的内存,并关闭所有打开的文件。但程序员应该养成一个好习惯,在程序终止前关闭所有打开的文件。
下面是 close() 函数的标准语法,close() 函数是 fstream、ifstream 和 ofstream 对象的一个成员。
void close();写入文件
在 C++ 编程中,我们使用流插入运算符( << )向文件写入信息,就像使用该运算符输出信息到屏幕上一样。唯一不同的是,在这里您使用的是 ofstream 或 fstream 对象,而不是 cout 对象。
读取文件在 C++ 编程中,我们使用流提取运算符( >> )从文件读取信息,就像使用该运算符从键盘输入信息一样。唯一不同的是,在这里您使用的是 ifstream 或 fstream 对象,而不是 cin 对象。
举 例#include#include using namespace std; int main() { char data[100]; //以写的模式打开 ofstream outfile;//实例化了一个写文件的对象 outfile.open("E:C++asdha - (4).txt"); cout << "请输入你的数据:" << endl; cout << "请输入你的大名: " << endl; cin.getline(data, 100); //cin.getline() 和 cin.get()区别和联系 //两者都读取一行输入,直至换行符,自动添加 。 //不同之处:getline将丢弃缓存区n,get()不对n换行符处理,还保留在缓存区(!!!)。 // 向文件写入用户输入的数据 outfile << data << endl; cout << "请输入你的年龄: "; cin >> data; cin.ignore();//忽略一个东西 //它的一个常用功能就是用来清除以回车结束的输入缓冲区的内容, //消除上一次输入对下一次输入的影响 // 再次向文件写入用户输入的数据 outfile << data << endl; // 关闭打开的文件 outfile.close(); // 以读模式打开文件 ifstream infile; //定义一个读取的文件对象 infile.open("afile.dat"); cout << "E:C++asdha - (4).txt" << endl; infile >> data; // 在屏幕上写入数据 cout << data << endl; // 再次从文件读取数据,并显示它 infile >> data; cout << data << endl; // 关闭打开的文件 infile.close(); return 0; }
(代码内可能会有错,里面的内容大家仅供参考)



