Я создал программу, которая отображает текущее время на экране. Что я хочу сделать сейчас, это обновлять это время после каждой минуты.
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
,
РЕДАКТИРОВАТЬ: восстановление текущей позиции курсора или любого письменного текста пользователем (который еще не был введен) не требуется после обновления.
Вы можете использовать alarm()
функция, которая по истечении времени отправляет сигнал SIGALRM
,
Приложение просто должно иметь обработчик сигнала для этого сигнала.
Других решений пока нет …