2017-05-25 76 views
0

我期望,以顯示「你好」和2秒(延時)的時間延遲(奇怪的行爲),後來的「世界」COUT顯示器

int t = time(NULL); 
    std::cout << "hello "; 

    while(time(NULL) < (t + 2)); 
    std::cout << " world"; 

而是我得到了一個空白頁面,直到後2秒,節目顯示「hello world」。即使時間間隔增加如(t + 9)相同的結果。這種行爲不是農場主。

但是,如果我在第一次加std::endl COUT

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

我得到預期的結果( 「你好」 後(2秒)純滯後 「世界」)。

+0

的可能的複製[性病::法院將不打印](https://stackoverflow.com/questions/14858262/stdcout-wont-print) –

回答

1

std::cout通常是緩衝的,這意味着它可能不會立即輸出,除非您強制它。你的第一個輸出之後嘗試std::flush

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