多くの C++ の本には、次のようなサンプル コードが含まれています...
std::cout << "Test line" << std::endl;
...私もいつもそうしてきました。しかし、代わりに次のような現役の開発者のコードをたくさん見てきました:
std::cout << "Test line\n";
どちらか一方を優先する技術的な理由があるのでしょうか、それとも単にコーディング スタイルの問題なのでしょうか?
ベストアンサー1
ファイルがテキスト モードで開かれていると仮定すると、行末文字が異なっていても問題ありません。バイナリを要求しない限り、テキスト モードで開かれます。コンパイルされたプログラムは、コンパイルされたシステムに適した内容を書き出します。
唯一の違いはstd::endl
は出力バッファをフラッシュし、'\n'
はフラッシュしません。バッファを頻繁にフラッシュしたくない場合は、 を使用します'\n'
。フラッシュする必要がある場合 (たとえば、すべての出力を取得する必要があり、プログラムが不安定な場合) は、 を使用しますstd::endl
。