Как мне запустить таймер в C - PullRequest
0 голосов
/ 07 марта 2019

Я делаю викторину и хочу сделать таймер обратного отсчета, в котором у человека, играющего в игру, есть только определенное время, чтобы ответить на вопрос. Я довольно новичок в C и ищу простой способ установить таймер.

1 Ответ

0 голосов
/ 07 марта 2019

Если вы не возражаете против человека, играющего на ответе и которому говорят, что он опоздал, вы можете использовать что-то вроде этого.

time.h дает нам возможность отслеживать тактовые частоты процессора во времени. Это также дает нам некоторые изящные функции, такие как double difftime(time_t timer2, time_t timer1), которые возвращают разницу между двумя таймерами в секундах.

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

int main(void) {
  time_t start_time;
  time_t current_time;

  time(&start_time);
  time(&current_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(&current_time);
  }
  printf("Too late\n");
  return 0;
}

Единственная проблема заключается в том, что scanf заблокирует программу, и перед остановкой цикла будет дан ответ. Если это не то, что вы ищете, тогда вам следует изучить темы. Который зависит от ОС.

...