1

我的 cout 语句有一个非常奇怪的问题。我只用 XCode 4 试过这个。例如,如果我写,

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

我在调试器控制台中看到了所有三个输出语句。但是,如果我将顺序更改为,

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

我只看到前两个 couts。更奇怪的是,如果我将代码更改为,

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

我看到所有三个陈述。

当我改变它的位置时,为什么我看不到“这不是” cout 声明?

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 回答