C++利用clock()函数编写时间延迟

一般我们常见的延迟方式是通过编写循环体,来实现简单的不太精准延时方式,例如下面给出的例子,

int wait;
while(wait < 1000)
    wait++;

但是由于处理器速度容易突变,所以这样的计时不是很准确,此外在编写延时代码时,不同的芯片还要考虑处理器的执行速度,因此不是很方便。

而在C++库中存在一个clock()函数,该函数可以返回程序开始执行后所用的系统时间。注意这里返回的时间是系统时间不是对应的秒数,因此我们需要一个已经定义好的符号常量来进行转换。

CLOCKS_PER_SEC ,这个符号常量所代表的意思是,一秒对应的时间单位数,因此将时间单位数除以这个符号常量,我们就可以得到秒数。

 

#include <iostream>
#include <ctime> // 需要包含到的头文件
int main()
{
    using namespace std;
    cout << "Enter the delay time, in seconds: ";
    float secs;
    cin >> secs;// 输入秒数
    clock_t delay = secs * CLOCKS_PER_SEC;  // 将秒换算成系统时间
    cout << "starting\a\n";
    clock_t start = clock(); // 保存开始时间
    while (clock() - start < delay )        // 直到计时结束
        ;                                   // 函数体内 不执行任何操作
    cout << "done \a\n";
    return 0; 
}

通过记录当前的系统时间,并与所设延迟的开始时间做比较,就可以实现计时效果了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值