I /Oに関するcplusplus.comチュートリアルを読んでいました。最後に、fstreamバッファがディスク上のファイルと同期されていることを示しています
明示的に、マニピュレータを使用する場合:特定のマニピュレータがストリームで使用されると、明示的な同期が行われます。これらのマニピュレータは、flushとendlです。
と
明示的に、メンバー関数sync()を使用する場合:パラメーターを受け取らないストリームのメンバー関数sync()を呼び出すと、即時同期が発生します。この関数は、ストリームに関連するバッファーがない場合、または障害が発生した場合に、-1に等しいint値を返します。それ以外の場合(ストリームバッファが正常に同期された場合)、0を返します。
他のいくつかの暗黙のケース(destroyやstream.close()など)に加えて
fstream :: flush()とfstream :: sync()の呼び出しの違いは何ですか?endl?
私のコードでは、常にflush()を使用しています。
std :: flush()に関するドキュメント:
ストリームバッファをフラッシュする
ストリームに関連付けられたバッファを、制御された出力シーケンスに同期します。これは事実上、バッファ内のすべての未書き込み文字が、制御された出力シーケンスにできるだけ早く書き込まれる(「フラッシュされる」)ことを意味します。
std :: streambuf :: sync()に関するドキュメント:
入力バッファを文字のソースと同期します
ストリームバッファを制御されたシーケンス(ファイルストリームの場合のファイルのように)と同期するために呼び出されます。パブリックメンバー関数pubsyncは、この保護されたメンバー関数を呼び出して、このアクションを実行します。
これが初心者の質問である場合は、私を許してください。私は初心者です。