输出的文件没有覆盖问题

JY1111
  • 23

ofstream fllh("lh.txt", ios::app);
if (!fllh)
{
cout<<"failed to open data file."<<endl;
exit (0);
}
else
{
fllh<<setiosflags(ios::fixed)<<setprecision(7)<<L<<endl;
}
fllh.close();
写了一个输出文件的代码,但是用的是app追加的方式,每次算完之后就会直接输出计算出来的比如1000行的数据,但是如果修改了代码内容,再运行的时候输出的新的1000行的内容会接着之前的文件后面输出,变成了2000行,除非得先删了之前输出的文件,不能直接覆盖,每次都删太麻烦了,修改了几次,要么最后只能输出一行了,要么就直接输得很乱,求助大神!

回复
阅读 2.2k
1 个回答

打上 C++ 标签啊喂!

你让程序去附加数据(ios::app),它当然会去附加数据了。你用 ios::trunc 就会覆盖文件啦。见教程:
Input/output with files - C++ Tutorials

如果你需要多次往同一文件里写东西,但是每次运行时又要覆盖旧文件,那么:你应该只打开这个文件一次。不是每写一次就要打开一次文件的;打开的文件可以多次使用。这就像你不必每次进入房间都要「开门、进入、关门」这样,也可以第一次进去时开门,出来的时候不关门,下次进去时就不用再开门了。等事情都办完了,再最后关上门即可。加粗文字

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏