写入文本文件而不覆盖它

Tom*_*83B 2 c++ numerical textinput

我正在用C++进行重力的数值模拟,我想在每次计算一个步骤时备份我的结果.

但是,我现在这样做,程序总是覆盖文件.我想我总是可以通过将文本保存在不同的文件或变量中来解决问题,但我想知道是否有更简单的方法来打开文本文件以便我不会覆盖它.

我目前的"备份代码"如下所示:

fstream log;
log.open ("log.txt");
if (log.is_open())
{...
  ...
  log.close();
}
Run Code Online (Sandbox Code Playgroud)

unw*_*ind 9

以append-mode打开流:

log.open("log.txt", fstream::app);
Run Code Online (Sandbox Code Playgroud)

这将简单地将新输出附加到现有,为您提供一个随时间增长的大日志文件.

一个建议(如果您还没有这样做)是在记录数据中包含某种时间戳,这样当您读取文件时,您可以将记录的数据与程序的运行相关联.


cav*_*man 0

设置追加模式。请参阅: http: //www.cplusplus.com/reference/iostream/fstream/open/