1

我创建了一个在屏幕上显示当前时间的程序。我现在要做的是每分钟更新一次。

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.

编辑:更新后不需要恢复当前光标位置或用户的任何书面文本(尚未输入)。

4

1 回答 1

1

您可以使用该alarm()功能,该功能将在时间到期时发送一个信号SIGALRM

应用程序只需要为该信号提供一个信号处理程序。

于 2016-12-24T17:00:06.547 回答