cout からバッファリングされていない出力を取得して、フラッシュする必要なく即座にコンソールに書き込むにはどうすればよいでしょうか (cerr と同様)。
rdbuf()->pubsetbuf でできると思ったのですが、うまくいかないようです。以下のコード スニペットは、すぐにコンソールに出力され、数秒待機することになっています。しかし代わりに、ただ待機し、プログラムが終了してバッファがフラッシュされたときにのみ出力します。
#include <iostream>
int main()
{
std::cout.rdbuf()->pubsetbuf(0, 0);
std::cout << "A";
sleep(5);
}