到目前为止,我们已经使用了 iostream 标准库,它提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流。
本教程介绍如何从文件读取流和向文件写入流。这就需要用到 C++ 中另一个标准库 fstream,它定义了三个新的数据类型:
打开文件
在从文件读取信息或者向文件写入信息之前,必须先打开文件。ofstream 和 fstream 对象都可以用来打开文件进行写操作,如果只需要打开文件进行读操作,则使用 ifstream 对象。
下面是 open() 函数的标准语法,open() 函数是 fstream、ifstream 和 ofstream 对象的一个成员。
void open(const char *filename, ios::openmode mode);
在这里,open() 成员函数的第一参数指定要打开的文件的名称和位置,第二个参数定义文件被打开的模式。
关闭文件
当 C++ 程序终止时,它会自动关闭刷新所有流,释放所有分配的内存,并关闭所有打开的文件。但程序员应该养成一个好习惯,在程序终止前关闭所有打开的文件。
下面是 close() 函数的标准语法,close() 函数是 fstream、ifstream 和 ofstream 对象的一个成员。
void close();
写入文件
在 C++ 编程中,我们使用流插入运算符( << )向文件写入信息,就像使用该运算符输出信息到屏幕上一样。唯一不同的是,在这里您使用的是 ofstream 或 fstream 对象,而不是 cout 对象。
写入文件
在 C++ 编程中,我们使用流插入运算符( << )向文件写入信息,就像使用该运算符输出信息到屏幕上一样。唯一不同的是,在这里您使用的是 ofstream 或 fstream 对象,而不是 cout 对象。
读取 & 写入实例
下面的 C++ 程序以读写模式打开一个文件。在向文件 1.txt写入用户输入的信息之后,程序从文件读取信息,并将其输出到屏幕上:
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
char data[100];
//以写模式打开文件
ofstream outfile;
outfile.open("1.txt");//若没该文件则自动创建
cout << "writing to the file" << endl;
cout << "enter your name:" << endl;
cin >> data;
//向文件写入用户输入的数据
outfile << data << endl;
cout << "enter your age:";
cin >> data;
//再次向文件写入用户输入的数据
outfile << data << endl;
//关闭打开的文件
outfile.close();
//以读模式打开文件
ifstream infile;
infile.open("1.txt");
cout << "Reading from the file" << endl;
//按行读取
while (infile>>data)//!infile.eof()
{
cout << data << endl;
}
infile.close();
return 0;
}