"std::endl" と "\n" の違い 質問する

多くの C++ の本には、次のようなサンプル コードが含まれています...

std::cout << "Test line" << std::endl;

...私もいつもそうしてきました。しかし、代わりに次のような現役の開発者のコ​​ードをたくさん見てきました:

std::cout << "Test line\n";

どちらか一方を優先する技術的な理由があるのでしょうか、それとも単にコーディング スタイルの問題なのでしょうか?

ベストアンサー1

ファイルがテキスト モードで開かれていると仮定すると、行末文字が異なっていても問題ありません。バイナリを要求しない限り、テキスト モードで開かれます。コンパイルされたプログラムは、コンパイルされたシステムに適した内容を書き出します。

唯一の違いはstd::endlは出力バッファをフラッシュし、'\n'はフラッシュしません。バッファを頻繁にフラッシュしたくない場合は、 を使用します'\n'。フラッシュする必要がある場合 (たとえば、すべての出力を取得する必要があり、プログラムが不安定な場合) は、 を使用しますstd::endl

おすすめ記事