は私がプログラミングの初心者だけど、私は昨日の自分自身を教え始め、私はすべてを取得してきたが、私は正直、誰が説明していないstd :: cout << xの間のdiffrenceは何ですか;とstd :: cout << x << std :: endl ;?
std::cout << x;
と
std::cout << x << std::endl;
の違いを理解していませんこれは私にとって、私は安全な側にとどまるように求めています。
は私がプログラミングの初心者だけど、私は昨日の自分自身を教え始め、私はすべてを取得してきたが、私は正直、誰が説明していないstd :: cout << xの間のdiffrenceは何ですか;とstd :: cout << x << std :: endl ;?
std::cout << x;
と
std::cout << x << std::endl;
の違いを理解していませんこれは私にとって、私は安全な側にとどまるように求めています。
endl
ストリームに改行を書き込むので、後続の出力が次の行に表示されます。また、ストリームのバッファをフラッシュします。通常はcausing a slow-downです。
このフラッシングは、時間の99%がendl
で間違いであることを意味し、代わりに"\n"
(または'\n'
)と書いてください。あなたが本当にストリームをフラッシュしたい場合は、私はそれが代わりにstd::flush
を呼び出すことによってそれを明示的にするために、より良いことだと思う:
std::cout << x << '\n' << std::flush;
限り、実行時のアクションが行くように、これは
std::endl
を使用するのと同じですが、という点で
あなたの意思を明確にするには、それはと大幅に優れています。
読者の役に立つかもしれない観察: 'std :: cout <<"のようなプロンプトを出力したい場合、あなたの名前を入力してください: ";'、あなたは(デフォルトで)使用する必要はありません'std :: cin'からの入力を試みる前に' endl'または 'flush'を実行します。 –
std::endl
は、ストリームに改行コードを追加し、出力バッファもフラッシュし、std::cout << x
はx
を印刷しているだけです。 ですから、コード
cout << 5;
cout << 5;
を得た場合、それが出力として
になりますが、あなたは最初cout
にendl
を追加した場合、出力は
私は本当にあなたはそれがENDLよりもはるかに優れている'\n'
を使用することですお勧めしますどのような。
"私は本当にあなたが '\ n'それはendlよりはるかに優れていることをお勧めします" 何のために良い?パフォーマンス?他に何がありますか? – KABoissonneault
パフォーマンスはあなたにとって不十分ですか? –
私はそれを無料で入手すると良いです。それが他の問題を引き起こすことができるなら、私はむしろそれを避けるだろう。正直言って、私は個人的にストリームの代わりに 'printf'をラップするためのラッパーを使っています – KABoissonneault
[さらに読む](http://stackoverflow.com/q/213907/5583153) – Nacho
[私のこの回答](http://stackoverflow.com/a/29701830/1938163)潜在力の理解に役立つかもしれません意味: –