sleep语句在C++中无法正常工作

sleep statement not working properly in C++

本文关键字:常工作 工作 语句 C++ sleep      更新时间:2023-10-16

我一直在使用这样的sleep语句:sleep(2);有一段时间,但现在它突然不再正常工作了。每当我运行此代码时(示例):

#include <iostream>
using namespace std;
int main()  {
    cout << "Hi";
    sleep(2);
    cout << "Hello";
}

它不是先说"嗨",然后等两秒钟再说"你好",而是先等两秒钟,然后同时显示"嗨"answers"你好"。我以前写过其他代码,它们没有问题,但一旦我创建了一个新的目标&amp;文件,并尝试在其中编写一些包含sleep语句的代码,它会再次执行相同的操作:(。请帮我搞定这些家伙,谢谢!

尝试刷新缓冲区。

#include <iostream>
using namespace std;
int main()  {
    cout << "Hi";
    cout << flush; // add this line
    sleep(2);
    cout << "Hello";
}

根据std参考,您应该使用:

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

当然,如果您使用的是多线程环境,这是最佳实践。