我正在用 C++ 对重力进行数值模拟,我想在每次计算一个步骤时备份我的结果。
但是,按照我现在的方式,程序总是会覆盖文件。我想我可以通过始终将文本保存在不同的文件或变量中来解决,但我想知道是否有更简单的方法可以打开文本文件,这样我就不会覆盖它。
我当前的“备份代码”如下所示:
fstream log;
log.open ("log.txt");
if (log.is_open())
{...
...
log.close();
}
以附加模式打开流:
log.open("log.txt", fstream::app);
这将简单地将新输出附加到现有输出中,从而为您提供一个随时间增长的大日志文件。
一个建议(如果您还没有这样做的话)是在记录数据中包含某种时间戳,这样当您读取文件时,您可以将记录的数据与程序的运行相关联。
由于作者似乎对建议的答案有疑问,我将添加另一个。
ofstream log;
log.open("log.txt", ofstream::app);
我想使用显式流
流
和
流的
有时效果更好。虽然我不知道原因。
将模式设置为追加。看到这个: http ://www.cplusplus.com/reference/iostream/fstream/open/