编写延时循环
有时候运行程序时,屏幕上显示了输出内容,但当我们还来不及阅读时,程序便输出了其他内容,导致无法正确捕获信息。编写延时循环的目的主要是按程序员的意图在程序的执行过程中可以暂停一会儿,以便得到想要的信息。
ANSI C和C++库中有一个函数有助于完成这样的工作。函数名为clock()。返回程序开始执行后所用的系统时间。clock()返回时间的单位不一定是秒。在不同系统中,返回的类型也不一定相同,有些系统返回类型是long,另一些则可能是long long或其他类型。
这个函数包含在头文件ctime中(在较早的实现中是time.h)。它还定义了一个符号常量——CLOCKS_PER_SEC。该常量为每秒中所包含的系统时间单位数。所以将系统时间除以这个常量,可以得到相应的秒数。将秒数乘以这个常量,则得到以系统单位时间为单位的时间。其次,ctime将clock_t作为clock()返回类型的别名,这意味着可以将变量声明为clock_t类型。
以下例子是编写延时给定秒数的循环:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int sec;
cin>>sec;
clock_t delay=sec*CLOCKS_PER_SEC;
clock_t start=clock();
while(clock()-start<delay) ;
cout<<"done!"<<endl;
return 0;
}