请教for循环按固定的时间

runbenny 2009-09-07 09:29:49
比如我有一个for循环,他循环N次,但是我想规定每次循环相隔1s,应该怎么写?
...全文
252 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wesleyluo 2009-09-07
  • 打赏
  • 举报
回复
楼上的几位都说了。
acrobatyuer 2009-09-07
  • 打赏
  • 举报
回复
可以用Sleep(1000);

for(int i=0,i<100,++i)
{
Sleep(1000); //每次执行到这里都会停1秒
//........
在下面写你的处理代码
}
whg01 2009-09-07
  • 打赏
  • 举报
回复
//在for循环开始处添加下面一行代码,
t1=GetTickCount();
//在for循环最后一行添加下面一组代码:
t2 = GetTickCount();
while (t2 - t1 < 1000)
{
sleep(10);
t2 = GetTickCount();
}
这样每个for循环都能保证在1秒左右,不管中间做了什么。除非中间做的事情超过了1秒。
精度大概在20毫秒左右。如果需要更好的精度,再查查资料。
Lochan 2009-09-07
  • 打赏
  • 举报
回复
sleep(1000);
飞天御剑流 2009-09-07
  • 打赏
  • 举报
回复
非标准的方法,可以使用函数sleep( 1 )或者delay( 1000 ),标准的方法,使用clock():

#include <time.h>

......

clock_t Start, End;
.......
Start = clock();
while( ( End = clock() ) - Start < CLOCKS_PER_SEC );
yshuise 2009-09-07
  • 打赏
  • 举报
回复
sleep(1000);
whg01 2009-09-07
  • 打赏
  • 举报
回复
windows的普通时钟精度是15ms。所以虽然是sleep(10)但有可能会15毫秒或更长一点的时间后才会恢复。
runbenny 2009-09-07
  • 打赏
  • 举报
回复
我是用在控制里面,要求0.1s控制一次,单纯的sleep不行,2楼和4楼的方法可以试试。4楼的方法为什么sleep(10),精度是20ms呢?而不是10ms呢

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧