C++——流的文件I/O(Input & Output)
程序员文章站
2022-03-19 20:53:49
用流来对文件进行I/O操作,一定要先#include
获取输入
基本框架
ifstream in_stream;
in_stream.open("in_st...
用流来对文件进行I/O操作,一定要先#include
获取输入
基本框架
ifstream in_stream; in_stream.open("in_stream.dat"); ... in_stream.close();
检查输入
在进一步对输入进行操作前应该先判断一下输入文件是否成功打开,成功则继续,否则退出,在这里对输入/输出流对象使用fail 成员函数
//输入流判断 if(in_stream.fail()) { cout << "input error.\n" << endl; exit(1); }
//输出流判断 if(out_stream.fail()) { cout << "output error.\n" << endl; exit(1); }
生成输出
生成输出
基本框架
基本框架
ofstream out_stream; out_stream.open(out_stream.dat); ... out_stream.close();
追加输出(不覆盖已有文件)
追加输出(不覆盖已有文件)
流以文件的形式输出的时候默认输出一个新文件——也就是说,如果已经存在一个同名文件,就会被新生成的文件覆盖掉。但有的时候我们需要多次运行来多次采集数据而不覆盖之前的记录,则可以更改成员函数open。
out_stream.open("out_stream.dat",ios::app);
但注意,在加入ios::app 参数之前,一定要先引入完整代码
#include
#include
#include
using namespace std;
int main()
{
ifstream in_stream;
ofstream out_stream;
in_stream.open("infile.dat");
if(in_stream.fail())
{
cout << "input error.\n" << endl;
exit(1);
}
out_stream.open("outfile.dat",ios::app);
if(out_stream.fail())
{
cout << "output error.\n" << endl;
exit(1);
}
out_stream.precision(3);
double first, second, third;
in_stream >> first >> second >> third;
out_stream << "The sum of the fisrt 3\n" << "numbers in infile.data\n" << "is " << (first + second + third) << endl;
in_stream.close();
out_stream.close();
return 0;
}