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; 
}

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

发布了11 篇原创文章 · 获赞 3 · 访问量 2360

猜你喜欢

转载自blog.csdn.net/weixin_42108411/article/details/104456492
今日推荐