2015-12-06 50 views
2

我一直在使用睡眠聲明,如下所示:sleep(2);一段時間,但現在它突然不能正常工作了。每當我運行此代碼(例如):睡眠聲明在C++中無法正常工作

#include <iostream> 
using namespace std; 

int main() { 
    cout << "Hi"; 
    sleep(2); 
    cout << "Hello"; 
} 

,而不是說「嗨」第一,然後等待兩秒鐘,然後說「你好」,它首先等待兩秒鐘,然後它會顯示這兩個「你好」和「你好」。我還有其他代碼,我之前編寫過,他們沒有問題,但只要我創建一個新的目標文件,並嘗試用sleep語句編寫一些代碼,它會再次執行相同的操作, 。:( 請幫我解決這個傢伙,感謝

回答

4

嘗試刷新緩衝區

#include <iostream> 
using namespace std; 

int main() { 
    cout << "Hi"; 
    cout << flush; // add this line 
    sleep(2); 
    cout << "Hello"; 
} 
1

std參考,你應該使用:!

std::this_thread::sleep_for(2s); 

中當然,如果你使用多線程環境,這是最佳實踐。