1

私のcoutステートメントには本当に奇妙な問題があります。私はこれを XCode 4 でのみ試しました。たとえば、私が書いた場合、

cout << "this works" << endl;
cout << "this doesnt";
cout << memorySizeLimit << " blocks of memory available." << endl;

デバッガー コンソールに 3 つの出力ステートメントがすべて表示されます。ただし、順序を変更すると、

cout << memorySizeLimit << " blocks of memory available." << endl;
cout << "this works" << endl;
cout << "this doesn't";

最初の 2 つのカウントしか表示されません。さらに奇妙なことに、コードを次のように変更すると、

cout << memorySizeLimit << " blocks of memory available." << endl;
cout << "this works" << endl;
cout << "this doesn't" << endl;

3 つのステートメントすべてを参照します。

位置を変更したときに、「これはしない」というステートメントが表示されないのはなぜですか?

4

1 に答える 1

6

std::coutはストリームであり、通常はパフォーマンスのためにバッファリングされます。出力するとendl、ストリームがフラッシュされます (cout << endlcout << "\n" << flush.

cout << flush(または)によって手動でストリームをフラッシュできますcout.flush()

したがって、次のように出力されます。

cout << "this doesn't" << flush;
于 2011-03-27T23:01:29.700 に答える