1
我写了一个模拟程序。在每个时间步中,它将一个输出块写入文件。它仍在开发中,因此它有时会崩溃或被用户终止。在那种情况下,为了调试和分析,我仍然希望我的文件处于正确的状态,包含已写入的数据。如何为长时间运行的程序做文件输出
目前,我做到以下几点:
在节目的开始,我打开该文件不追加并关闭它了,只是为了清空文件:
file.open(fname, std::ios::binary);
file.close();
在每个时间步,我首先打开文件追加,写入数据,然后关闭文件:
file.open(fname, std::ios::binary | std::ios::app);
... // data is written here
file.close();
这是解决问题的好方法,还是您推荐一种不同的方法?
您的代码已经将文件与您已经写入的数据保存在一起。 –
如果程序崩溃,为什么不使用异常处理,以便在程序终止之前关闭文件? –
有趣和困难的问题。操作系统将在应用程序崩溃时关闭该文件。手动关闭它可能没有什么区别。对于初学者来说,你的操作系统是什么? –