線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1289
推到 Plurk!
推到 Facebook!

console 下使用 difftime 做 倒數計時~

答題得分者是:windblown
hdilwy
初階會員


發表:18
回覆:65
積分:41
註冊:2004-08-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-15 10:15:23 IP:140.128.xxx.xxx 未訂閱
#pragma hdrstop
#include 
#include 
#include 
#include 
//---------------------------------------------------------------------------    #pragma argsused
int main(int argc, char* argv[])
{
        time_t t1,t2;
        int count=20;
        t1=time(NULL);
        while(count>0)
        {
             Sleep(1000);
             t2=time(NULL);
             if(difftime(t2,t1)>=1)
             {
                printf("倒數20秒 %d\n",count);
                count--;
                t1=time(NULL);
             }            }
        system("pause");
        return 0;
} 
想請教一下~~我這樣寫會不會很奇怪 有沒有方法可以直接做倒數或是類似這篇的IncSecond http://delphi.ktop.com.tw/topic.php?TOPIC_ID=66379 如果不做Sleep的話會不會造成資源被佔住 請指教-感謝
windblown
中階會員


發表:0
回覆:117
積分:98
註冊:2003-11-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-15 14:27:27 IP:61.229.xxx.xxx 未訂閱
1 一定要用 Sleep() 才不會佔用 CPU 資源 2 程式寫得很好,如果能讓 count--; t1=time(NULL); 變成 count--; t1=t2; 這樣的話,時間的處理就會更有連續性(不會因為執行了difftime(), printf(), count-- 所造成取得 t1=time(NULL) 時失去了這一小段時間) time_t 去看他的 data type, 一般都是與整是有關的 type(int or long);我的習慣都直接拿來加加減減而不用 difftime(),可以參考看看。
hdilwy
初階會員


發表:18
回覆:65
積分:41
註冊:2004-08-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-17 14:31:54 IP:219.68.xxx.xxx 未訂閱
恩~ 時間的連續性~~的確沒考慮到~~ 受教了~~
系統時間:2024-05-19 12:44:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!