iostream库也支持文件的输入和输出。所有能应用在标准输入和输出上的操作符,也都可以应用到已经被打开的输入或输出文件上。为了打开一个文件供输入和输出,除了iostream头文件之外,还必须包含头文件:
#include <fstream>
为了打开一个输出文件,我们必须声明一个ofstream类型的对象:
ofstream outfile("name-of-file");
为了测试是否已经成功地打开一个文件,我们可以写出这样的代码:
//如文件不能打开值为false
if(!outfile)
cerr<<"Sorry! We were unable to open the file!\n";
类似地,为了打开一个文件供输入,我们必须声明一个ifstream类型的对象:
ifstream infile("name-of-file");
if ( ! infile )
cerr << "Sorry! We were unable to open the file!\n";
下面是一个简单的程序。它从一个名为in_file的文本文件中读取单词,然后把每个单词写到一个out_file的输出文件中,并且为每个词用空格分开。
#include <iostream>
#include <fstream>
#include <string>
int main()
{
ofstream outfile( "out_file" );
ifstream infile( "in_file" );
if ( ! infile ) {
cerr << "error: unable to open input file!\n";
return -1;
}
if ( ! outfile ) {
cerr << "error: unable to open output file!\n";
return -2;
}
string word;
while ( infile >> word )
outfile << word << ' ';
return 0;
}