C++ 先睡比 "couts"

C++ first sleeps than "couts"

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

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

而不是输出

...

然后比五秒后

Lorem Ipsum

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

...
Lorem Ipsum

您应该 flush() cout 显式(或使用 std::endl)强制立即输出

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

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