0

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

int t = time( NULL );

std::cout << "hello";

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

std::cout << " world";

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

但是,如果我像这样std::endl首先添加:cout

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

我得到了预期的结果“你好”,两​​秒钟后得到了“世界”。

4

1 回答 1

4

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

std::cout << "hello " << std::flush;
于 2017-05-27T16:00:29.610 回答