在 for 周期中添加“时间间隔”

Adding "time interval" in a for cycle

提问人:Understanding 提问时间:10/21/2015 最后编辑:NathanOliverUnderstanding 更新时间:10/21/2015 访问量:64

问:

假设我有以下程序(我将只编写必要的程序!

for (i = 1; i<=100; i++) 
{
    cout << " Hello World!\n "; 
}

运行它将直接产生 100 个 Hello World。我怎样才能让循环在再次执行之前等待一定的持续时间(如 1 秒)?

C++语言

评论

2赞 cadaniluk 10/21/2015
C 还是 C++?有区别!
0赞 Understanding 10/21/2015
这是针对 C++ 的,但我也想知道 C!:)
1赞 Thomas Matthews 10/21/2015
您可能需要查找操作系统 API 以获取时间延迟或睡眠功能。
0赞 Jongware 10/21/2015
@cad:有,这显然是C++。(知道它实际上是什么语言也可能对 OP 有用。
0赞 cadaniluk 10/21/2015
@Jongware我指的是C与C++不同的一般事实。

答:

1赞 NathanOliver 10/21/2015 #1

从 C++14 开始,您可以使用 std::this_thread::sleep_for 和新用户定义的时间间隔:

using namespace std::chrono_literals;
for (i = 1; i<=100; i++) 
{
    cout << " Hello World!\n "; 
    std::this_thread::sleep_for(1s);
}

Live Example

如果您只有 C++11 支持,那将是

for (i = 1; i<=100; i++) 
{
    cout << " Hello World!\n "; 
    std::this_thread::sleep_for(std::chrono::seconds(1));
}

这确实需要和<thread><chrono>

评论

0赞 Understanding 10/21/2015
我必须包括一些库吗?因为它给了我错误(确切地说,它说“1s”中的“s”尚未声明)
0赞 vishal 10/21/2015 #2

以下是完整的工作代码:

#include <iostream>
#include <chrono>
#include <thread>

using namespace std;

int main()
{
unsigned int microseconds = 1000 ;

for (int i = 1; i<=10; i++)
{

    cout << " Hello World!\n ";
    this_thread::sleep_for(chrono::milliseconds(microseconds));
}
return 0;
}