c语言中怎么设置计时器?

作者&投稿:那卸 (若有异议请与网页底部的电邮联系)
~ C语言计时可以用很多方法。
  1.
如果是想使用秒级别的技术,可用使用C语言库<time.h>自带的clock()进行计时。如:
  #include
<iostream>
  #include
<time.h>
  using
namespace
std;
  int
main()
  {
  clock_t
start
=
clock();
  //do
some
process
here
  clock_t
end
=
(clock()
-
start)/CLOCKS_PER_SEC;
  cout<<"time
comsumption
is
"<<end<<endl;
  }
  以上方法只能用于秒级别的计时。
  2.如果想使用毫秒级别的计时可以使用2种方法。一种是使用linux的系统库<sys/time.h>,一种是使用CUDA的cutil的库。
  A.
如果使用linux的系统库,则可以使用如下方法:
  #include
<sys/time.h>
  int
main()
  {
  timeval
starttime,endtime;
  gettimeofday(&starttime,0);
  //do
some
process
here
  gettimeofday(&endtime,0);
  double
timeuse
=
1000000*(endtime.tv_sec
-
starttime.tv_sec)
+
endtime.tv_usec
-
startime.tv_usec;
  timeuse
/=1000;//除以1000则进行毫秒计时,如果除以1000000则进行秒级别计时,如果除以1则进行微妙级别计时
  }
  timeval的结构如下:
  strut
timeval
  {
  long
tv_sec;
/*
秒数
*/
  long
tv_usec;
/*
微秒数
*/
  };
  上述方法可以进行微妙级别的计时,当然也可以进行毫秒和秒的计时。
  B.
如果可以使用CUDA的话,则可以使用CUDA的sdk里面的cutil库里面的函数。
  #include
<cutil.h>
  int
main()
  {
  unsigned
int
timer
=
0;
  cutCreatTimer(&timer);//创建计时器
  cutStartTimer(&timer);//开始计时
  //
do
some
process
here
  cutStopTimer(&timer);//停止计时
  cout<<"time
is
"<<cutGetTimerValue(&timer)<<endl;//打印时间
  }

秒表计时器的代码
#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();
}


怎么用易语言进行倒计时
.版本 2 .程序集 窗口程序集1 .程序集变量 sec,整数型 .子程序 _时钟1_周期事件 sec = sec - 1 标签1.标题 = 到文本 (sec).如果真 (sec = 0)时钟1.时钟周期 = 0 '这里是计时完毕后要做的事 .如果真结束 .子程序 __启动窗口_创建完毕 sec = 4 ...

c语言倒计时怎么编?
1、C语言中实现精确计时,参考代码如下:ANSIC: ftime()struct timeb { time_t time;unsigned short millitm;short timezone;short dstflag;};2、另外,还有就是更精确定计时,需要CPU的支持,具体情况,可以参考MSDN。LARGE_INTEGER frequency = {0};LARGE_INTEGER now = {0};LARGE_INTEGER end ...

易语言怎么让他持续倒计时!
将这个倒计时的剩余时间存入配置项中,也就是在时钟周期事件中用 写配置项 这个命令进行保存,打开软件时用 读配置项 这个命令读取刚才保存的剩余秒数!建立 时钟1,周期设为1000,另建一个标签1,代码如下:.版本 2 .程序集 窗口程序集_启动窗口 .程序集变量 倒计时长, 整数型 .子程序 __启动...

如何在C语言中实现计时
以前做那个停车场管理系统的时候, 也是需要计时,因为要收费.. 好像就这么记得. 每个上机的人,应该有一个结构体,在结构体里设个计时的变量,可以是个只有两个元素的数组.当然这样会很不方便了.(因为需要你自己输入上机时间,和下机时间,并保存在变量里.)... ANSIC里有一个time函数,在time.h头文件...

易语言写一个倒计时器,就是说。比如一个程序要每隔5分钟执行一次。我想...
.版本 2 .子程序 取倒计时间, 文本型, , 返回“天数-时-分-秒”的文本格式,时间部分可参考参数变量 .参数 起始时间, 日期时间型 .参数 终了时间, 日期时间型 .参数 小时, , 参考 可空, 倒数出‘小时’整数部分 .参数 分钟, , 参考 可空, 倒数出‘分钟’整数部分 .参数 秒数, , 参考...

易语言怎么实现日期倒计时?
你可以用取时间间隔得到总共剩余多少秒,然后再把秒数换成xx月xx天xx小时xx分xx秒。给你个参考就明白了。.版本 2 .子程序 取毫秒到小时, 文本型 .参数 参_毫秒, 整数型 .局部变量 局_小时, 整数型 .局部变量 局_分钟, 整数型 .局部变量 局_秒, 整数型 局_小时 = 参_毫秒 ÷ 3600000 ...

用52单片机C语言编写程序,实现00~59计时。要求用T0,工作方式1。_百度...
TMOD=0x01; \/\/设置定时器0的工作方式 TH0=(65536-50000)\/256;\/\/装初值 TL0=(65536-50000)%256;EA=1;\/\/开总中断 ET0=1; \/\/开定时器0中断 TR0=1; \/\/启动定时器0 } void display() \/\/显示子程序 { dula=1;P0=table[ge]; \/\/送段选数据 dula=0;P0=0xff; \/\/...

易语言如何计时?比如说过两分钟之后编辑框内容就加1,四分钟之后就是二...
~~~用易语言的时钟控件就行。上传一个简单源码给你。新建一易窗口程序,拖入一个编辑框控件与一个时钟控件,并输入以下代码即可。.版本 2 .程序集 窗口程序集1 .子程序 __启动窗口_创建完毕 时钟1.禁止 = 假 时钟1.时钟周期 = 120000 编辑框1.内容 = “0”.子程序 _时钟1_周期事件 编辑...

易语言怎么写倒计时啊
.版本 2 .程序集 窗口程序集1 .子程序 _时钟1_周期事件 .局部变量 累计, 整数型, 静态 累计 = 累计 + 1 .判断开始 (累计 ≥ 10)_启动窗口.标题 = “倒计时完毕”编辑框1.内容 = “这里输入显示的内容”时钟1.时钟周期 = 0 .默认 _启动窗口.标题 = “还有:” + 到文本 (10 ...

易语言如何计时
这很简单,加一个时钟,按钮1被单击 标签1.可视=假 时钟1 时钟周期=1000 标签1.标题=到文本(10)时钟1周期事件 标签1.标题=到文本(到数值(标签1.标题)-1)如果真(标签1.标题=“0”)执行()标签1.标题=到文本(10)

丰宁满族自治县13279812299: C语言如何实现定时器? -
豆卢童护固: #includetime_t t; struct tm *timer; time(&t);//t返回系统当前时间 timer=localtime(&t);//返回tm结构时间, 这样取得系统时间,再跟已定时间比较,相等则触发 结构tm定义如下: struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst;};

丰宁满族自治县13279812299: C语言如何实现定时器?
豆卢童护固: #include&lt;time.h&gt; time_t t; struct tm *timer; time(&amp;t);//t返回系统当前时间 timer=localtime(&amp;t);//返回tm结构时间, 这样取得系统时间,再跟已定时间比较,相等则触发 结构tm定义如下: struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst;};

丰宁满族自治县13279812299: C语言,计时器 -
豆卢童护固: 秒表计时器的代码 #include <stdio.h> #include <conio.h> #include <windows.h> #include <stdlib.h> struct tm //定义时间结构体,包括时分秒和10毫秒 { int hours,minutes,seconds; int hscd; }time,tmp,total; //time用以计时显示,tmp用以存储上一阶段...

丰宁满族自治县13279812299: C语言定时器 -
豆卢童护固: 这个程序用多线程比较好解决.#include <windows.h> #include <iostream> #include <conio.h> using namespace std;const int MAX_SECOND = 1000 * 60;DWORD WINAPI MyThread(PVOID pParam) {int nSum = 0; DWORD dwFirstTime = ...

丰宁满族自治县13279812299: C语言做一个计时器 -
豆卢童护固: 你可以配合 sleep(); {程序暂停函数,头文件 windows.h} 和clock(); {返回程序 已经运行了的时间 头文件 time.h} 一起使用 完整代码 就 不写了 原理就是 1\第一次 你 打开文件前 先 读出 时间(clock)2\然后打开文件 随后 再 读 时间 作差就是 打开文件耗费的时间 3\让程序 sleep(); 暂停的时间 应该为 1秒-刚才 作差算出来 的 时间

丰宁满族自治县13279812299: C语言程序运行计时 -
豆卢童护固: 使用time()函数.它在头文件time.h中 具体使用方法如下: time_t a,b;//time_t是表示时间的结构体,你可以在time.h中找到它的原型. a=time(NULL);//表示获取当前的机器时间. 代码段 b=time(NULL);//表示获取当前的机器时间. a是代码段执行前的时间,b是代码段执行后的时间(单位是秒),那么b-a当然是代码段的执行时间了.输出时,以长整型输出时间. 希望这个解答可以帮到你.

丰宁满族自治县13279812299: C语言做计时器 -
豆卢童护固: #include <stdio.h> int main() { int seconds; for (;scanf("%d",&seconds)==1;) { printf("%02d:%02d:%02d\n",seconds / 3600,seconds / 60 % 60,seconds % 60); } return 0; }

丰宁满族自治县13279812299: 如何在C语言中实现计时 -
豆卢童护固: 以前做那个停车场管理系统的时候, 也是需要计时,因为要收费.. 好像就这么记得. 每个上机的人,应该有一个结构体,在结构体里设个计时的变量,可以是个只有两个元素的数组.当然这样会很不方便了.(因为需要你自己输入上机时间,和下机...

丰宁满族自治县13279812299: C语言怎么实现定时器 -
豆卢童护固: 如果是指什么都不做,空等待指定的时间,可以调用sleep函数,也可以采用循环执行空语句的方式.因为一条语句执行的时间基本是固定的,因此得到的时间会有一些偏差.

丰宁满族自治县13279812299: 如何建立C语言程序内部精确计时器 -
豆卢童护固: 共勉,我也在学习阶段.#include <time.h>#include <stdio.h> int main(void) { //nano time struct timespec ts1,ts2,ts3,ts4,ts5; int err; err = clock_gettime(CLOCK_REALTIME,&ts1); if(err < 0) { return 1; }printf("ts1 nano:%di\n",ts1.tv_nsec); err = ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网