【C++学习笔记】延时循环

来源:互联网 发布:电子商务美工方向 编辑:程序博客网 时间:2024/05/16 12:26

1、早期技术

long wait = 0;while (wait < 10000)        wait++;

这种方法的问题是,当计算机处理器的速度发生变化时,必须修改技术限制。例如,有些PC速度更快,则循环会变得更快结束。更好的方法使用系统时钟来完成工作。

2、clock()能够返回程序开始执行后所用的系统时间,但存在两个复杂问题:

(1)clock()返回的时间单位不一定是秒。

(2)该函数的返回类型在某些系统可能是long,在另一些系统可能是unsigned long或其他类型。

3、头文件ctime提供了解决方案

头文件ctime定义了一个符号常量——CLOCKS_PER_SEC,该常量等于每秒钟包含的系统时间单位数。

(1)首先,系统时间/CLOCKS_PER_SEC = 秒数,或秒数*CLOCKS_PER_SEC = 以系统时间单位为单位的时间。

(2)其次,ctime将clock_t作为clock返回类型的别名,意味着可以将变量类型声明为clock_t,编译器再将它转换为long、unsigned long或其他类型。

4、例子

#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";cin.get();cin.get();return 0;}


0 0
原创粉丝点击