对于实现让程序等待一段时间,早期的技术是
long wait=0;
while(wait<10000)
wait++;
但是,这种方法的问题的是,当计算机处理器的速度发生变化时,,必须修改技术限制,即在不同的计算机上等待的时间可能是不同的。
所以更好的方法时让系统时钟来完成这种工作,C++库中有一个函数clock()
有助于完成这样的工作,该函数返回程序执行后所用的系统时间。
与此同时,使用clock函数也会由两个问题:
- 、clock()返回的时间不一定是秒。
- 、该函数返回的类型在某些系统上可能是long,在另一些系统上可能是unsigned long或者其他类型。
头文件ctime(早期的time.h)提供了解决方案。
- 首先,它定义了一个符号常量
CLOCKS_PER_SEC
,该常量等于每秒钟包含的系统时间单位数,将系统时间除以这个指,可以读到秒数。或者秒数乘以该常量可以得到以系统时间单位的时间。 - 其次,ctime将
clock_t
作为clock()返回类型的别名,这意味着可以将变量声明为clock_t类型,编译器将把它转换为适合系统的类型。
举个例子:
#include<iostream>
#include<ctime>
using namespace std;
int main()
{
//设置延迟时间
cout << "Enter athe delay time,in seconds:";
float secs;
cin >> secs;
clock_t delay = secs * CLOCKS_PER_SEC;
cout << "starting\a\n";// 转义字符\a是响铃 \n换行
clock_t start = clock();
//计时开始
while (clock() - start < delay);
cout << "done\a\n";
system("pause");
return 0;
}