17

ハイスコ​​アを .txt ファイルに実装するゲームを作ろうとしています。私が持っている質問はこれです:私が次のような声明を出すとき:

ofstream fout("filename.txt");

これはその名前のファイルを作成しますか、それとも単にその名前のファイルを探しますか?

問題は、プログラムを新たに開始して次のステートメントを作成するときはいつでもです。

fout << score << endl << player; 

それは私の以前のスコアを上書きします!

ファイルに書き込むときに新しいスコアが古いスコアを上書きしないようにする方法はありますか?

4

2 に答える 2

34

std::ofstreamデフォルトで新しいファイルを作成します。append パラメータを使用してファイルを作成する必要があります。

ofstream fout("filename.txt", ios::app); 
于 2011-11-22T00:01:32.087 に答える
14

単純にファイルの末尾に追加したい場合は、ファイルを追加モードで開くことができます。そのため、書き込みはファイルの最後で行われ、以前に存在したファイルの内容は上書きされません。

ofstream fout("filename.txt", ios::app);

テキストの特定の行を追加モードで最後に追加するのではなく、データで上書きしたい場合は、おそらくファイルを読み取ってデータを解析し、それを修正する方がよいでしょう (何でも追加、削除、編集)。なんでも)そしてそれをすべて新たにファイルに書き戻します。

于 2011-11-22T00:00:54.943 に答える