XCode 4只显示带有endl的cout语句

时间:2011-03-27 22:59:22

标签: c++ xcode4 cout endl

我的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声明?

1 个答案:

答案 0 :(得分:6)

std::cout是一个流,通常会为了性能而进行缓冲。如果您打印endl,则会刷新流(cout << endlcout << "\n" << flush相同。

您可以通过cout << flush(或cout.flush())手动刷新流。

所以应该打印:

cout << "this doesn't" << flush;