c++中timer函数怎么用?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++中timer函数怎么用?相关的知识,希望对你有一定的参考价值。
在用C++编贪吃蛇,想知道怎么控制蛇的移动速度。另外刚学,所以是在控制台下实现的,用timer函数可以吗?
参考技术A ===============<windows.h>
Sleep(int delay);实现延迟,单位毫秒
================
void getto(int x,int y)//光标定位,可用来设置红心位置,蛇初始位置,信息打印位置等
COORD c;
c.X=y;
c.Y=x;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
void color(int x)//设置文本颜色,涂色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
==============
<conio.h>
getch();不带回显输入可用于方向键识别
方向键由两位asc构成,第一位都是224
第二位:上72 ;下80 ;左75;右77
因此可以如此判断
if(getch()==224)//公共asc码
char ch=getch();
switch(72): do something....
....本回答被提问者采纳 参考技术B 1.概念
在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获取和显示等等的问题。下面,在这篇文章中,笔者将主要介绍在C/C++中时间和日
期的使用方法.
通过学习许多C/C++库,你可以有很多操作、使用时间的方法。但在这之前你需要了解一些“时间”和“日期”的概念,主要有以下几个:
Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。比如,中国内地的时间与UTC的时差为+8,也就是UTC+8。美国是UTC-5。
Calendar Time:日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。这个标准时间点对不同的编译器来说会有所不同,但对一个编译系统来说,这个标准时间点是不变的,该编译系统中的时间对应的日历时间都通过该标准时间点来衡量,所以
可以说日历时间是“相对时间”,但是无论你在哪一个时区,在同一时刻对同一个标准时间点来说,日历时间都是一样的。
epoch:时间点。时间点在标准C/C++中是一个整数,它用此时的时间和标准时间点相差的秒数(即日历时间)来表示。
clock tick:时钟计时单元(而不把它叫做时钟滴答次数),一个时钟计时单元的时间长短是由CPU控制的。一个clock tick不是CPU的一个时钟周期,而是C/C++的一个基本计时单位。
我们可以使用ANSI标准库中的time.h头文件。这个头文件中定义的时间和日期所使用的方法,无论是在结构定义,还是命名,都具有明显的C语言风格。下面,我将说明在C/C++中怎样使用日期的时间功能。
2. 计时
C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下:
clock_t clock( void );
这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock)。其中clock_t是用来保存时间的数据类型,在time.h文件中,我们可以找到对 它的定义:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
很明显,clock_t是一个长整形数。在time.h文件中,还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元,其定义如下:
#define CLOCKS_PER_SEC ((clock_t)1000)
可以看到每过千分之一秒(1毫秒),调用clock()函数返回的值就加1。下面举个例子,你可以使用公式clock()/CLOCKS_PER_SEC来计算一个进程自身的运行时间:
void elapsed_time()
printf("Elapsed time:%u secs.\n",clock()/CLOCKS_PER_SEC);
当然,你也可以用clock函数来计算你的机器运行一个循环或者处理其它事件到底花了多少时间:
#include “stdio.h”
#include “stdlib.h”
#include “time.h”
int main( void )
long i = 10000000L;
clock_t start, finish;
double duration;
/* 测量一个事件持续的时间*/
printf( "Time to do %ld empty loops is ", i );
start = clock();
while( i-- ) ;
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "%f seconds\n", duration );
system("pause");
参考技术C C++哪个头文件有timer()?追问
貌似没有,我也是在网上找的,许是错了。。。不过还是谢谢了。。。。
在*.c中,使用timer函数的方法,都有哪些函数可以调用,如gettimer、timercallback等,而不是用在c++中。
在.c文件中有哪些 timer 函数可以调用
time语法:
#include <time.h>
time_t time( time_t *time );
功能: 函数返回当前时间,如果发生错误返回零。如果给定参数time ,那么当前时间存储到参数time中。
asctime()
时间文本格式
clock()
返回自程序开始运行所经过的时间
ctime()
返回特定格式时间
difftime()
两时刻的间隔
gmtime()
返回指向当前格林威治时间的指针
localtime()
返回指向当前时间的指针
mktime()
返回指定时间的日历格式
strftime()
返回日期和时间的单个元素
time()
返回系统的当前日历时间
代码
含义
%a
星期的缩略形式
%A
星期的完整形式
%b
月份的缩略形式
%B
月份的完整形式
%c
月份的缩略形式
%d
月中的第几天(1-31)
%H
小时, 24小时格式 (0-23)
%I
小时, 12小时格式 (1-12)
%j
年中的第几天(1-366)
%m
月份 (1-12). Note: 某些版本的Microsoft Visual C++ 可能使用取值范围0-11.
%M
分钟(0-59)
%p
本地时间的上午或下午(AM or PM)
%S
秒钟(0-59)
%U
年中的第几周,星期天是一周的第一天
%w
星期几的数字表示(0-6, 星期天=0)
%W
一年中的第几周,星期天是一周的第一天
%x
标准日期字符串
%X
标准时间字符串
%y
年(0-99)
%Y
用CCYY表示的年(如:2004)
%Z
时区名
%%
百分号
函数strftime()返回值为处理结果字符串str中字符的个数,如果发生错误返回零。 参考技术A #include"timer.h"后按F12,进头文件看。。
以上是关于c++中timer函数怎么用?的主要内容,如果未能解决你的问题,请参考以下文章