我创建了一个在屏幕上显示当前时间的程序。我现在要做的是每分钟更新一次时间。
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
。
应用程序只需要为该信号提供一个信号处理程序。
关于c++ - 在 C++ 中执行主程序时,如何在后台检查是否已经过了一分钟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41307855/