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

时间:2017-05-25 12:25:34

标签: c++ time cout endl

我希望cout打印“你好”,两​​秒钟打印“世界”。

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;
...

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

1 个答案:

答案 0 :(得分:3)

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

std::cout