【发布时间】:2015-07-14 16:58:38
【问题描述】:
以下程序是一个简单的数字时钟 我希望时间与系统时间持续同步,并将其显示在控制台顶部,而不会干扰我的其他工作,因为在这种情况下,您可以看到最后一行的“hello”永远不会打印为 while它上面的循环永远不会结束,并且每次循环都会清除屏幕。
我希望我的代码也能在 while 循环之外执行指令,但是 它永远不会到达那个点,因为 while 循环永远不会在这个程序中结束
#include <ctime>
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
bool loop = true;
while (loop)
{
time_t now = time ( 0 );
tm *local = localtime ( &now );
local->tm_hour -= 6;
system("cls");
cout << ctime ( &now ) <<'\n';
cout<<"check";
Sleep(1000);
}
cout<<"hello";//this is not printed as while loop doesnt ends
cin.get();
return 0;
}
【问题讨论】:
-
不知道这是怎么做到的。即使您可以异步运行时钟(您可以在不同的线程中执行此操作),您也会不断清除控制台,那么您如何查看任何其他输入/输出流?
-
是否有任何其他替代方法可以让我执行其他指令,同时时间显示在顶部?
-
请记住,睡眠时间通常是最短的且不准确。例如,处理器可以休眠 1030 毫秒而不是 1000 毫秒;因为它满足了 1000 毫秒的最低要求。
-
如果您找到一个现有的应用程序或小部件来执行此操作,生活会更轻松。