我如何 运行 C 中的计时器
How do I run a timer in C
我正在做一个问答游戏,想做一个倒数计时器,让玩的人只有一定的时间来回答问题。我是 C 的新手,正在寻找一种设置计时器的基本方法。
如果您不介意有人回答并被告知他们已经来不及了,您可以使用类似这样的东西。
time.h
使我们能够及时跟踪处理器时钟。它还为我们提供了一些漂亮的功能,例如 double difftime(time_t timer2, time_t timer1)
returns 两个计时器之间的秒数差异。
#include <stdio.h>
#include <time.h>
int main(void) {
time_t start_time;
time_t current_time;
time(&start_time);
time(¤t_time);
double delay = 5;
int answer = 0;
double diff = 0;
while (diff < delay) {
diff = difftime(current_time, start_time);
scanf("%d", &answer);
printf("Nope not %d\n", answer);
time(¤t_time);
}
printf("Too late\n");
return 0;
}
唯一的问题是 scanf 将锁定程序并且必须在循环停止之前给出答复。如果这不是您想要的,那么您应该考虑使用线程。这是 OS 相关的。
我正在做一个问答游戏,想做一个倒数计时器,让玩的人只有一定的时间来回答问题。我是 C 的新手,正在寻找一种设置计时器的基本方法。
如果您不介意有人回答并被告知他们已经来不及了,您可以使用类似这样的东西。
time.h
使我们能够及时跟踪处理器时钟。它还为我们提供了一些漂亮的功能,例如 double difftime(time_t timer2, time_t timer1)
returns 两个计时器之间的秒数差异。
#include <stdio.h>
#include <time.h>
int main(void) {
time_t start_time;
time_t current_time;
time(&start_time);
time(¤t_time);
double delay = 5;
int answer = 0;
double diff = 0;
while (diff < delay) {
diff = difftime(current_time, start_time);
scanf("%d", &answer);
printf("Nope not %d\n", answer);
time(¤t_time);
}
printf("Too late\n");
return 0;
}
唯一的问题是 scanf 将锁定程序并且必须在循环停止之前给出答复。如果这不是您想要的,那么您应该考虑使用线程。这是 OS 相关的。