2009-09-04 9 views
11

バッファリングされていない出力をcoutから取得すると、フラッシュする必要なしに即座にコンソールに書き込むことができます(cerrと同様)。coutを使用したバッファなし出力

私はそれがrdbuf() - > pubsetbufによって実行できると思っていましたが、これはうまくいかないようです。以下のコードスニペットはすぐにコンソールに出力され、数秒待つことになっています。しかし、代わりに、それは単に待機し、プログラムが終了し、バッファがフラッシュされるときにのみ出力します。

#include <iostream> 

int main() 
{ 
     std::cout.rdbuf()->pubsetbuf(0, 0); 
     std::cout << "A"; 
     sleep(5); 
} 

答えて

32
std::cout.setf(std::ios::unitbuf); 

トリックを行う必要があります。

+0

本当にありがとうございました!他人へのメモ:バッファリングは、coutやprintfを使ったときに起きるように見え、行の最後に改行があっても起こります。 – Moot

関連する問題