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

sleep statement not working properly in C++

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

#include <iostream>
using namespace std;

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

不是先说 "Hi" 然后等两秒再说 "Hello",而是先等两秒然后显示 "Hi" 和 "Hello"。我以前写过其他代码,它们没有问题,但是一旦我创建一个新的目标 && 文件并尝试编写一些带有睡眠语句的代码,它就会再次做同样的事情: (. 请帮我解决这个问题,谢谢!

尝试刷新缓冲区。

#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);

当然,如果您使用多线程环境,这是最佳做法。