c语言中用计时什么可以计时,C语言计时器

C语言计时器

(2012-05-20 21:51:34)

标签:

it

秒表计时器的代码

#include

#include

#include

#include

struct tm //定义时间结构体,包括时分秒和10毫秒

{

int hours,minutes,seconds;

int hscd;

}time,tmp,total; //time用以计时显示,tmp用以存储上一阶段时间,total记总时间

int cnt;

FILE* fout;

//每次调用update函数,相当于时间过了10ms

void update(struct tm *t)

{

(*t).hscd++; //10ms单位时间加1

cnt++;

if ((*t).hscd==100) //计时满1s,进位

{

(*t).hscd=0;

(*t).seconds++;

}

if ((*t).seconds==60) //计时满一分,进位

{

(*t).seconds=0;

(*t).minutes++;

}

if ((*t).minutes==60) //计时满一小时,进位

{

(*t).minutes=0;

(*t).hours++;

}

if((*t).hours==24) (*t).hours=0;

//delay();

Sleep(10); //Sleep是windows提供的函数,作用是暂停程序,单位毫秒,所以此处暂停10ms

}

void display(struct tm *t)

{

//此处输出计时结果,\r为回车不换行,既一直在同一行更新时间

printf("%d:",(*t).hours);

printf("%d:",(*t).minutes);

printf("%d:",(*t).seconds);

printf("%d\r",(*t).hscd);

//printf("Now, press ‘e’ key to stop the clock…");

}

void time_init() //初始化时间

{

time.hours=time.minutes=time.seconds=time.hscd=0;

}

void get_total() //计算总时间

{

total.hscd = cnt % 100;

cnt /= 100;

total.seconds = cnt % 60;

cnt /= 60;

total.minutes = cnt % 60;

cnt /= 60;

total.hours = cnt;

}

int main()

{

char m;

time_init();

cnt = 0;

fout = fopen("timeout.txt","w");

printf("按回车键开始计时!\n");

while(1)

{

m = getch();

if(m != ‘\r’) //读入一个输入,如果是回车,那么跳出次循环

printf("输入错误,仅能输入回车键!\n");

else

break;

}

printf("已经开始计时,但是你可以按回车键以分段计时!\n");

while(1)

{

if(kbhit()) //此处检查是否有键盘输入

{

m=getch();

if(m == ‘\r’) //如果等于回车,那么计时结束,跳出循环

break;

else if(m == ‘ ‘) //如果等于空格,显示此次计时,初始化计时器

{

tmp = time; //记录上一段计时器结果

fprintf(fout,"%d:%d:%d:%d\n",tmp.hours,tmp.minutes,tmp.seconds,tmp.hscd); //写入文件

time_init();

printf("\n");

}

else

{

printf("输入错误,仅支持输入回车键或者空格键!\n");

}

}

update(&time); //更新计时器

display(&time); //显示计时器时间

}

tmp = time; //输出最后一次即使结果,写入文件

fprintf(fout,"%d:%d:%d:%d\n",tmp.hours,tmp.minutes,tmp.seconds,tmp.hscd);

get_total(); //计算总的时间,显示,并写入文件

printf("\n总时间:%d:%d:%d:%d\n",total.hours,total.minutes,total.seconds,total.hscd);

fprintf(fout,"统计时间:%d%d%d%d\n",total.hours,total.minutes,total.seconds,total.hscd);

fclose(fout);

printf("已经保存到当前目录下的timeout.txt文件中按任意键结束!");

getch();

}

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值