BohYoh.comトップページへ
C & C++ FAQ
目次

C++ 出力ストリームへのendlの出力と'\n'の出力との違いは何ですか。

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

#include <iostream> using namespace std; int main(void) { cout << "ABC\n"; // 改行 cout << "ABC" << endl; // 改行+フラッシュ }


戻る

BohYoh.comロゴ