Как проверить в фоновом режиме, прошла ли минута при выполнении основной программы на С ++?

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

dateAndTime now; //created an object of a custom class dateAndTime

cout << "\n\t\t\t\t\t\t" << now.hour() << ':' << now.minute() << endl;
cout << "CASH MANAGER" << "\n";
cout << "1. Add cash" << "\n";
cout << "2. Withdraw cash" << "\n\n";

int ch;
cout << "Enter a number 1 or 2: ";
cin >> ch;

Давайте предположим, что время обновляется с помощью следующего процесса:

if (time(0) == now.epochTime() + 1)
now.setTime(time(0));

Теперь я хочу, чтобы время отображалось как now.hour() << ':' << now.minute(); следует обновлять через каждую минуту, не задерживая и не прерывая основную программу.

Это означает, что если пользователь, например, не вводит какой-либо ввод в течение нескольких минут после запроса, время должно автоматически обновляться через каждую минуту, и в течение всего процесса программа всегда ожидает ввода пользователя (т. Е. Основная программа работает как обычный). Есть ли способ сделать это? Я знаю, что не может быть кроссплатформенной техники для этого. Так что я просто хочу сделать это для windows os,

РЕДАКТИРОВАТЬ: восстановление текущей позиции курсора или любого письменного текста пользователем (который еще не был введен) не требуется после обновления.

1

Решение

Вы можете использовать alarm() функция, которая по истечении времени отправляет сигнал SIGALRM,

Приложение просто должно иметь обработчик сигнала для этого сигнала.

1

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector