C++一些好玩的小操作(延时操作)

前言

都知道在for循环的后面加一个分号就可以将程序秀一脸血,这样的操作也会被用于一些延时操作,
但是这样的方法和电脑处理器的效率有关,有时候换了电脑时间会不一样,当然可以调整循环次数来实现时间一致,但是有更好的方式。

clock函数

头文件 :< ctime > (C中是<time.h>)
(其实头文件那里我也不想加空格,实在是不知道又碰到了哪个标识符,不加空格不能输出)

clock()函数返回开始执行后所用的系统时间,但是存在一个问题,返回值的类型不一定是秒,可能是系统时间单位的量,解决办法如下:

文件提供了一种类型叫做 clock_t(其实头文件里面写得很清楚,就是typeof了long型)
还有一种常量,CLOCKS_PER_SEC,等于每秒钟包含的时间单位数。
啥意思?就是 系统时间 / 常量 = 秒数、秒数 * 常量 = 以系统时间为单位的时间。
所以clock_t a = clock();//此时a就是开始执行的时间。

int main()
{
	using namespace std;
	int delay;
	cin>>delay;//输入持续时间,以 秒 为单位
	clock_t delay_t = delay * CLOCKS_PER_SEC;//转化系统时间
	clock_t start = clock();
	while(clock()-start < delay);
	cout<< "Time over!"<<endl;
	return 0;
}

直到读入的时间和起始时间的差值为输入的延时时间,程序循环结束,退出。

说明
clock函数是执行到的时间,确实如此,但和程序的起始时间和执行到的时间还是有一个时间差的,这个要注意了。
另外我上网上查还有一个time函数,但不是那么精确,因为没有深入了解,这里不好下判断优劣。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值