gpt4 book ai didi

c++如何在cmd上显示运行时间??作为运行时钟改变需要系统 ("clear")?

转载 作者:太空宇宙 更新时间:2023-11-04 12:03:59 33 4
gpt4 key购买 nike

这将只显示调用函数时的静态时间...怎么显示运行时间??即:当时间从 12:00 变为 12:01 时,它会自动显示在屏幕上我基本上想在我的 cmd 屏幕顶部输出一个运行时钟并在其下方显示其他选项等

//http://stackoverflow.com/questions/997946/c-get-current-time-and-date
// Get current date/time, format is YYYY-MM-DD.HH:mm:ss
const string currentDateTime() {
time_t now = time(0);
struct tm tstruct;
char buf[80];
tstruct = *localtime(&now);
// Visit http://www.cplusplus.com/reference/clibrary/ctime/strftime/
// for more information about date/time format
strftime(buf, sizeof(buf), "%Y-%m-%d.%X", &tstruct);

return buf;
}

最佳答案

深吸一口气,因为这并不容易。

您必须从根本上设计您的应用程序以复用几个不同的、同时发生的“事件”,例如键盘事件和计时器。

您还必须使用不同于从标准输入读取和写入标准输出的输入/输出方法。您将需要一个合适的终端,或一个图形界面。

现在,一旦您了解了这两个想法,就需要设计您的应用程序。基本要素是事件循环。这是一个无限循环,基本上每次至少有一个事件可用时就执行一轮。根据事件,您可以采取行动:如果计时器触发,更新时间显示。如果键盘触发,则处理输入。

无论你的程序执行什么逻辑,也必须适合那里的某个地方。例如,如果用户输入拼写出一个你能识别的命令,你可能会开始一些 Action 作为响应。或者您可能会在每 1000 次计时器触发时定期执行一些操作。一个函数的结果可能会触发一个事件,该事件本身可能会被事件循环捕获。只要您的程序逻辑执行得足够快以允许及时处理计时器,这将是完全可以接受的。只有当你的程序有太多工作时,你才能开始考虑让多个线程同时运行事件循环(但这要困难得多)。

在 Linux 上,此设计的标准实现是用于多路复用和文件-文件描述符的 epoll、timerfds、eventfds 和 signalfds,以及终端控制 ncurses。其他平台也有相应的技术。

关于c++如何在cmd上显示运行时间??作为运行时钟改变需要系统 ("clear")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12966327/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com