itsukichang

フロントエンドが得意なエンジニア.ダーツと旅行とギターが好き

endl と \n

違いと使い時がいまいち分かってなかったので・・

http://d.hatena.ne.jp/itsuki_kosen/searchdiary?word=itsuki_kosen
調べてみた。
共に共通するのは改行機能。

 通常、ストリーム入出力はバッファリングされており、『バッファが満杯になった。』あるいは『バッファの掃き出しが指示された。』などを機会に出力が行われます。endl処理子を出力すると、改行されるだけでなく、バッファのフラッシュも行われます。
 バッファリングは入出力を高速化するための技法ですが、明示的なフラッシュを頻繁に行うと、逆に速度が低下することになります。フラッシュの必要が無い箇所では、'\n'をま出力すれば十分です。

http://www.bohyoh.com/CandCPP/FAQ/FAQ00009.html


柴田望洋さんが解説してくれてました。
本に書いてくれてるとうれしかったです><

バッファの理解も曖昧だったので

調べますた。

動画とかの読み込みとかでよく、バッファ中・・・とかでますよね

バッファってデータをやり取りするときに、処理速度や転送速度の差を補うために一時的に保存しておく記憶領域のことらしいです。
ネットワーク機器にはこの記憶領域、バッファーメモリーを持ってるらしい。
で、その保存の動作のことをバッファリングという。

まとめー「endlと\nの違い」

バッファをフラッシュしてくれるかしてくれないか。
フラッシュする必要ないときは「\n」でおーけー。