1. 程式人生 > >C++clock()延時循環

C++clock()延時循環

系統 sig int ++ tar iostream 函數返回 類型 ret

函數clock(),返回程序開始執行後所用的系統時間,但是有兩個復制問題。

  1.clock()返回時間的單位不一定是秒

  2.該函數的返回類型在某些系統上可能是Long,也可能是unsigned long或者其他類型。

頭文件ctime提供了解決方案。

  1.首先定義了一個符號常量CLOCKS_PER_SEC,該常量等於每秒包含的系統單位數。因此,系統時間除以這個值,可以得到秒數。

  2.將秒數返回,乘以CLOCK_PER_SEC,可以得到以系統時間單位為單位的時間。

  3.ctime將clock_t作為clock()函數返回類型的別名,也就是將變量聲明為clock_t類型。如 clock_t start=clock();

  eg:

#include<iostream>
#include<ctime>
int main(){
    using namespace std;
    cout<<"Enter the delay time,in secondes:";
    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; }

 該程序以系統時間為單位(而不是以秒為單位)計算延遲時間,避免了每輪循環中將系統時間轉換為秒。

  

C++clock()延時循環