функция — Как я могу сгенерировать секундомер / обратный отсчет со следующим кодом в C ++?

Я пытаюсь создать функцию таймера, которая печатает таймер на 2 минуты (в форме M: S), который тикает сам по себе. У меня есть следующий код:

    void startTimer(){
srand(time(0));

clock_t start_t, end_t;
clock_t start = clock();
clock_t end = clock();
float seconds = (float)(end - start) / CLOCKS_PER_SEC;

printf("%d", start, seconds);
}

0

Решение

Код, который вы имеете, может измерить время, необходимое для выполнения фрагмента кода. Здесь вам нужно только:

  • Распечатать обратный отсчет
  • Спи одну секунду

и сделать это в цикле.

#include <iostream>
#include <unistd.h>int main(){
for (int i = 120; i >=0; i--){
std::cout << std::to_string(i/60) <<":" << std::to_string(i%60) <<std::endl;
sleep(1);
}
return 0;
}
0

Другие решения

Я не очень понимаю ваш код.

  • Что вы хотите сделать со своим случайным?
  • Почему вы объявляете start_t и end_t?
  • Как вы думаете, какое значение будет иметь начало и конец?
  • Что вы хотите напечатать?

Если вам нужен 2-минутный таймер, возможно, вы можете использовать цикл от 120 до 0 с printf (минут = индекс / 60 и секунд = индекс% 60) и 1-секундным сном внутри цикла. Это заблокирует нить цикла. Это проблема?

Если да, возможно, вы захотите взглянуть на другие решения, такие как перемещение цикла внутри другого потока.

0

По вопросам рекламы [email protected]