问一个C++中,cout<<输出重定向的问题:如何不去覆盖原文件数据? 20
默认情况下,cout输出到标准输出(也就是屏幕),cin从标准输入(键盘)输入,cerr通常和cout一样,输出到屏幕,可以将其重定向到文件、串口或者其他,示例代码如下:...
默认情况下,cout输出到标准输出(也就是屏幕),cin从标准输入(键盘)输入,cerr通常和cout一样,输出到屏幕,可以将其重定向到文件、串口或者其他,示例代码如下:
int main()
{
streambuf *buf = cout.rdbuf ();//备份原来的输出,即标准输出
ofstream outfile;
outfile.open ("C:/a.txt");
cout.rdbuf(outfile.rdbuf());
cout<<"Hello World!\t\nHi~"<<endl;
cout.rdbuf(buf);
cout<<"Hello World!\t\nHi~"<<endl;
return 0;
}
问题的关键是:这样运行程序会使输出的数据将文件中原来的数据覆盖,怎么改才能将新输出的数据直接添加到文件尾??
或者有没有比较好的方法,将屏幕输出的数据同时写入文件,注意不要覆盖原数据。 展开
int main()
{
streambuf *buf = cout.rdbuf ();//备份原来的输出,即标准输出
ofstream outfile;
outfile.open ("C:/a.txt");
cout.rdbuf(outfile.rdbuf());
cout<<"Hello World!\t\nHi~"<<endl;
cout.rdbuf(buf);
cout<<"Hello World!\t\nHi~"<<endl;
return 0;
}
问题的关键是:这样运行程序会使输出的数据将文件中原来的数据覆盖,怎么改才能将新输出的数据直接添加到文件尾??
或者有没有比较好的方法,将屏幕输出的数据同时写入文件,注意不要覆盖原数据。 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询