要求说明:编程实现计算机开机时间,要求每次开始计算时间时都能接着上次记录的结果接着向下记录
//计算开机时间
#include <stdio.h>
#include <unistd.h>
#include <conio.h>
struct time //定义时间结构体
{
int hour;
int minute;
int second;
}t;
int main(int argc, char **argv)
{
FILE *fp; //定义文件类型指针fp
fp = fopen("Time","r"); //以只读方式打开文件Time
fread(&t,sizeof(struct time),1,fp); //读取文件信息
while(!kbhit()) //当无按键时执行循环体语句
{
rewind(fp); //将文件指针设置到文件起点
sleep(1); //程序停止一秒
fread(&t,sizeof(struct time),1,fp); //读取文件内容
if(t.second == 59) //如果到60秒分钟数加一
{
t.minute += 1;
if(t.minute == 60) //如果到60分钟,小时数加一
{
t.hour += 1;
t.minute = 0; //分数置0
}
t.second = 0; //秒数置0
}
else
t.second += 1; //秒数加1
printf("%d:%d:%d\n",t.hour,t.minute,t.second); //输出累积的开机时间
fp = fopen("Time","w"); //以可写方式打开Time文件
fwrite(&t,sizeof(struct time),1,fp); //定义结构体time,存储时间信息
fclose(fp); //关闭文件指针
}
return 0;
}
样例输入输出:
0:2:46
0:2:47
0:2:48
0:2:49
0:2:50
0:2:51
0:2:52
0:2:53
0:2:54
0:2:55
0:2:56
0:2:57
0:2:58
0:2:59
0:3:0
0:3:1
0:3:2
0:3:3
0:3:4
0:3:5
0:3:6
0:3:7