1

ファイルを上書きせずにファイルに書き込む方法について、多くの質問がありました。

しかし今回は、ファイルを開いて数文字からなる値を書き込む方法を知る必要があります。値は非常に短いですが、ファイルの内容を更新された値に置き換えるこのプロセスは、10 億回も発生する可能性があります。

ここでまた質問です。そのようなファイルを一度開いて、コンテンツを何度も上書きする前に閉じずに書き込む方法はありますか?

なぜこれが必要なのかを教えていただければ、より良い解決策を教えていただけると思います。シミュレーターの現在の時刻をファイルに書き込んで、別のシミュレーターで読み取って使用する必要があります (同期の目的で)。

および疑似コード:

int main() {

    int i = 0;
 std::ofstream myWriteFile;
 ostringstream out;
 myWriteFile.open("text.txt");

 while (i < 4) {    
     out.str("");
     out << currentTime();
    myWriteFile << out.str() << std::endl;
    i++;
 }

myWriteFile.close();
return 0;
}
4

1 に答える 1

2

std::ostream::seekpを使用してファイルに書き込む前に、「put」ポインターをファイルの先頭に配置します。

myWriteFile.seekp(0);

「put」ポインタは、ファイルに書き込みたい位置を指定します。何かを書き込むと自動的にインクリメントされます。そのため、ファイルに連続して書き込むと、以前に書き込まれたデータの末尾にデータが追加されます。

于 2013-02-20T01:57:49.137 に答える