std :: endlが、、、またはプラットフォームに応じて返されるのか、それとも常に1つに固執するのかを理解しようとしています\r\n
。\n
\r
2 に答える
13
std::endl
の単なる「省略形」です'\n' << std::flush
。プラットフォームに依存しません。
ただし、'\n'
それ自体はプラットフォームごとに異なる方法で処理され、ストリームがテキスト モードで開かれている場合は、、、または (またはそのようなもの)'\r\n'
に'\n'
置き換えられます。'\r'
于 2013-01-21T20:02:36.163 に答える
2
'\ n'改行を出力します(適切なプラットフォーム固有の表現であるため、Windowsでは "\ r \ n"が生成されます)。std :: endlは同じことを行い、それをフラッシュします。
std::endlの代わりに'\n'を使用します; 改行を出力しようとするとき、しかしstd::endl
それをフラッシュしようとするとき使用します。不必要なフラッシュはアプリケーションのパフォーマンスを低下させます。ファイルI/Oは、ユーザーI/O以外で最も遅い操作の1つであることがわかっています。
于 2013-01-21T20:09:02.713 に答える