平常我们常见的电子时钟,能够显示当下的时分秒信息,并且能够随时变化递增,记录着时间的流逝。今天,我要用c语言来制作这样一款电子时钟,看时间这把杀猪刀如何“一刀一刀”溜掉。我会一步一步引导大家了解制作过程。
首先,我们可以想到,需要获取系统的时间函数,并且显示在cmd控制台中。time.h是c/c++日期和时间头文件,用于获取系统日期和时间等要求。首先给出提取显示当前时间的1.0版本电子时钟。
小编给大家推荐一个学习氛围超好的地方,C/C++交流企鹅裙:三四一六三六七二七!适合在校大学生,小白,想转行,想通过这个找工作的加入。裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直播课程
#include
#include
#include
int main()
{
char str[50];//定义字符串用于存储时间
time_t t;
struct tm *nt;//tm是time.h中定义的一个结构体
t=time(NULL);
nt=localtime(&t);//获取当前时间
strftime(str,50,"%Y-% m-%d %H:%M:%S ",nt);//strftime是根据当前计算机区域设置格式化本地时间日期
printf("现在时刻:%s ",str);//打印现在时刻
getch();
return 0;
}
运行的结果如下:
可以看出,的确做到了显示当前时间,但是很明显这不是电子时钟,电子时钟要不断运行变换时间,而不是让时间凝滞。那么,我们怎么实现真正的电子时钟呢?
我们一起思考:如果要实现时间变化,需要不断重新获取当前时间,并且将之前的显示清除掉,然后再打印显示当前时间,这样循环往复。所以,需要增加一个while(1)死循环,同时要增加一个清屏函数,清除原来的显示。清屏函数常用的就是system("cls")。下面是改进后的2.0版代码。
#include
#include
#include
int main()
{
char str[50];
time_t t;
struct tm *nt;
while(1)
{
system("cls");//清屏函数
t=time(NULL);
nt=localtime(&t);
strftime(str,50,"%Y-%m-%d %H:%M:%S “,nt);
printf("现在时刻:%s ",str);
}
getch();
return 0;
}
然后运行程序,就可以实现电子时钟了,时间不断刷新,秒数递增,时间随之递增。
感兴趣的朋友赶紧试验下吧,为了我们的编程梦想走的更远,一起加油吧!
领取专属 10元无门槛券
私享最新 技术干货