我正在尝试运行一小段代码3秒钟: 示例:
WHILE(3 SECONDS){
printf("Hey");
}
我尝试使用time_t,需要一段时间才能达到极限,就像这样:
time_t endwait;
time_t atual = (unsigned int)time(NULL);
time_t duration = secs;
while(atual < endwait){
printf("Hey");
}
但是它不起作用,程序陷入了循环打印“嘿”。
答案 0 :(得分:3)
您需要在while循环中检索当前时间。因此,以您的代码为例,它应该像这样:
time_t actual = time(NULL);
time_t duration = secs;
time_t endwait = actual + duration ;
while(actual < endwait){
printf("Hey");
actual = time(NULL);
}
答案 1 :(得分:3)
简短版本:
time_t endwait = time(NULL) + secs;
while(time(NULL) < endwait){
printf("Hey");
}
甚至:
for(time_t start = time(NULL);time(NULL)-start < secs;) printf("Hey");
答案 2 :(得分:0)
为什么不做类似的事情:
time_t start = time(NULL);
time_t since = time(NULL) - start;
time_t duration = 3;
while(since < duration) {
printf("Hey");
since = time(NULL) - start;
}