我的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声明?
答案 0 :(得分:6)
std::cout
是一个流,通常会为了性能而进行缓冲。如果您打印endl
,则会刷新流(cout << endl
与cout << "\n" << flush
相同。
您可以通过cout << flush
(或cout.flush()
)手动刷新流。
所以应该打印:
cout << "this doesn't" << flush;