-
前序
最近几天学业有点繁重,所以一直没时间来谢谢博客,再加上我懒哈哈哈哈,所以鸽了几天哈哈哈哈哈(ಡωಡ)那接下来让我们来进入今天的主题【C语言】简单计时器的分享
相信大家在生活中或多或少都有设置闹钟的习惯吧,就我个人而言,每天的早八都得7.30起床,所以闹钟就必不可少了,再者泡面泡的时候要等3分钟awa等等。
原文参考如下
链接 -
参考资料
在开始编程之前,我们要先知道这个程序要用的头文件除了<stdio.h>这个头文件还有以下两个<time.h>和<Windows.h>。
- <time.h>这个头文件主要的用途:返回一个值,即格林尼治时间1970年1月1日 的
00:00:00到当前时刻的时长,时长单位是秒。在time()函数中有两种使用方式:
(1)-----t1=time(NULL)或t1=time(0),
将空指针传递给time函数,并将time()的返回值赋值给变量t1;
(2) ------time(&t2);
将变量t2的地址作为实参传递给time()函数,函数自动把结果传递给t2,不需要额外的赋值语句。
从上图可以看出这两种方式的值都一样,那我们试试再运行一次看看会不会与上次的结果一样-------------------------------------di------------di--------------------------------------------------------
不难看出,这两次的结果都不一样,那么聪明的你一定知道了这个time()的值会一直不断增加变化。 - 对于代码中Sleep()在运行的时候要包括<Windows.h>头文件,Sleep一般被称为睡眠函数,指的是让系统休眠一段时间,()中是输入时间长度,一般是以毫秒为基本单位,即要休眠1s就要输入1000,以此类推。
3.代码区
介绍完了要用的头文件相关知识,接下来让我们进入编程┗|`O′|┛
#include <stdio.h>
#include <time.h>
#include<Windows.h>
int main(void)
{
int hour = 0, min = 0, sec = 0;
time_t time_sec = 0; //time_t相当于long int
time_t old_sec = 0;
printf("请设置计时时间——时 分 秒(用空格隔开)\n");
scanf_s("%d%d%d", &hour, &min, &sec);
old_sec = time_sec; //更新旧的秒数
while (hour > 0 || min > 0 || sec > 0)
{
time(&time_sec); //获取当前秒数(1970-1-1 00:00:00到现在),然后将秒数保存到time_t变量
if (time_sec != old_sec) //如果秒数改变(计时达到1秒)
{
old_sec = time_sec; //更新旧的秒数
if (sec > 0)
sec--; //计时秒数减1
else
{
sec = 59; //如果原秒数为0,则变为59
if (min > 0)
min--; //计时分钟减1
else
{
min = 59; //如果分钟数为0,则变为59
hour--; //计时小时数减1
}
}
printf("还有多久就能干饭了:");
printf("倒计时——%02d:%02d:%02d\r", hour, min, sec);
}
}
printf("\n");
for (int i = 0; i < 20; i++) //报警提示 时间倒计时结束会响20次
{
printf("警报响了%d次\r", i+1);
printf("\a"); //响蜂鸣器(或系统提示音)
Sleep(1000); //延时1秒,太短电脑不发出声音
}
puts("\n计时结束\n");
return 0;
}
- 运行效果如下┗|`O′|┛
我们输入0 0 6即6秒,接着程序会进行倒计时,到0时会响起警报(电脑系统的警报声)
一共会响20次,这个可以自己设置的红红火火恍恍惚惚
那么今天的分享就over了~