Я создал программу, которая отображает текущее время на экране. Теперь я хочу обновить это время после каждой минуты.Как проверить в фоновом режиме, прошла ли минута во время выполнения основной программы в C++?
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
.
EDIT: восстановление текущей позиции курсора или любого написанного пользователем текста (который еще не был введен) не требуется после обновления.
Вы не сможете сделать это, используя вход на основе cin. – SergeyA
скажем, я беру ввод через функцию getche() (), возможно ли это? –
Nope. Все еще будет блокировать вашу программу, пока не будет нажата клавиша. – SergeyA