即使有时间延迟,cout 也不打印

cout does not print even with time delay

我希望 cout 打印“hello”,两秒后打印“world”。

int t = time( NULL );

std::cout << "hello";

while( time(NULL) < (t + 2) );

std::cout << " world";

但是,cout 直到两秒后才在屏幕上打印注释,然后程序打印“hello world”。即使像(t + 9)这样增加时间延迟,也是一样的结果。我不熟悉这种 cout 行为。

但是如果我在第一个 cout 处添加 std::endl 就像这样:

std::cout << "hello" << std::endl;
...

我得到预期结果“hello”,两秒后得到“world”。

std::cout 通常是缓冲的,这意味着除非您强制它,否则它可能不会立即输出。在第一次输出后尝试 std::flush

std::cout << "hello " << std::flush;