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