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

时间:2015-12-06 14:01:41

标签: c++ sleep iostream cout

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

#include <iostream>
using namespace std;

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

而不是首先说“嗨”,然后等待两秒然后说“你好”,它先等待两秒然后显示“你好”和“你好”。我之前写过其他代码片段并且没有问题,但只要我创建一个新的目标&amp;&amp;文件,并尝试用它中的sleep语句编写一些代码,它再次做同样的事情,:(。 请帮我解决这个问题,谢谢!

2 个答案:

答案 0 :(得分:4)

尝试冲洗缓冲区。

#include <iostream>
using namespace std;

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

答案 1 :(得分:1)

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

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

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