C ++首先睡不上" couts"

时间:2015-01-16 22:54:13

标签: c++ sleep

我刚学习c ++并且一直在玩sleep()函数,这是我的代码

#include<iostream>
#include<unistd.h>
using namespace std;
int main(){
cout << "...";
sleep(5)
cout << "\nLorem Ipsum"
}

而不是输出

...

而不是五秒钟之后

Lorem Ipsum

相反,我先得到五秒钟等待,然后一次打印

...
Lorem Ipsum

1 个答案:

答案 0 :(得分:4)

您应flush() cout明确(或使用std::endl)强制立即输出

int main() {
    cout << "...";
    cout.flush(); // Flush explicitly
    sleep(5):
    cout << "\nLorem Ipsum";
}

除非底层缓冲区已达到某个水印填充,或者std::cout被调用(std::flush()这样做是隐含的),否则不会将文本写入std::endl