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 に答える