5

C++ で重力の数値シミュレーションを行っていますが、1 ステップがカウントされるたびに結果をバックアップしたいと考えています。

ただし、現在の方法では、プログラムは常にファイルを上書きします。テキストを常に別のファイルまたは変数に保存することで解決できると思いますが、上書きしないようにテキストファイルを開く簡単な方法があるのではないかと思います。

現在の「バックアップ コード」は次のようになります。

fstream log;
log.open ("log.txt");
if (log.is_open())
{...
  ...
  log.close();
}
4

4 に答える 4

12

追加モードでストリームを開きます。

log.open("log.txt", fstream::app);

これにより、新しい出力が既存の出力に単純に追加され、時間の経過とともに大きくなる 1 つの大きなログ ファイルが作成されます。

1 つの提案 (まだ行っていない場合) は、ログ データにある種のタイムスタンプを含めることです。これにより、ファイルを読み取るときに、ログに記録されたデータをプログラムの実行に関連付けることができます。

于 2010-11-11T14:46:19.120 に答える
3

log.open("log.txt", fstream::app)ファイルへの追加に使用します。

詳細については、このリファレンスを参照してください。

ロギングとタイムスタンプの洗練されたメカニズムが必要な場合は、C++ のロギング フレームワークに関する有用な SO投稿があります。Pantheiosは受け入れられた答えを得ました。

于 2010-11-11T14:46:36.853 に答える
0

追加するモードを設定します。これを参照してください: http://www.cplusplus.com/reference/iostream/fstream/open/

于 2010-11-11T14:45:54.400 に答える