我正在尝试创建一个模拟时钟的c ++程序。它应该显示日期/时间并不断更新。我找到了一种使所有功能都能完美运行的方法,但是我想了解代码。我对编程非常陌生,理想情况下希望对每一行都有了解。
我知道这行代码为将光标移回屏幕上的指定点奠定了基础-在我的程序中,它用于返回到先前显示的“开始”和“重叠”。
void gotoxy (int x, int y)
{
COORD coord; // coordinates
coord.X = x; coord.Y = y; // X and Y coordinates
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
有人可以向我解释坐标吗?我不明白大括号背后的原因。
在main()中,我有以下代码:
time_t now;
while (true)
{
gotoxy (0,0);
now = time(0);
cout << "The time is now: " << ctime(&now);
Sleep (20);
}
cin.get ();
return EXIT_SUCCESS;
我以为
time_t
是C / C ++的函数,它显示自1970年1月1日以来经过的时间。我不明白这是如何输出当前时间的。我试图注释掉一些代码,以查看出了什么问题,以便弄清楚整个过程是如何工作的,但是没有运气。我还在互联网上搜索了几个小时,逐行走,以查看是否可以对此有所了解。我已经采取了最后的手段,只是要求任何人帮助我理解这段代码中发生了什么。谢谢!
最佳答案
坐标只是终端中字符的位置。 (0,0)
可能意味着返回第一个字符。这样做时,输出将覆盖控制台中的字符,给它“更新”时间的错觉。
至于时间功能,您可以阅读ctime here的文档。它返回人类可读的日期格式,而不是计数器。
代码的哪一部分不清楚?
这是一个简单的无限循环(cin.get ();
永远不会到达,程序永远不会返回btw)。在循环内,光标返回到行的开头,打印时间并等待20秒重复。