打印剩余的时间以秒为单位的循环结束

时间:2018-12-08 23:23:47

标签: c

我正在运行一个while循环,几秒钟后结束。

我想在几秒钟内打印出,该循环还剩多少时间。

我的代码:

time_t end = time(NULL) + seconds;

while (time(NULL) < end) {
     //print time in seconds
}

我该怎么做?谢谢。

1 个答案:

答案 0 :(得分:0)

您需要一个简单的计算,例如end-time(NULL)。但是,当您要在while循环中打印时,您会看到许多重复的相同数字,例如:(10,10,10,10,10,9,9,9,9,9,8, 8,8,8,.......)。为防止这种情况,您应在每个循环中检查重复的数字,并禁止再次打印该数字。您可以这样操作;

#include<stdio.h>
#include<string.h>
#include<time.h>


int main(void){

int seconds = 10;
int checker = -1;

time_t end = time(NULL) + seconds;

while (time(NULL) < end) {

     if( end-time(NULL) != checker)
     printf("Time Left: %d\n", end-time(NULL));

     checker = end-time(NULL);
}

}