2010-09-01 48 views
3

這不是一項家庭作業,它更多的是來自我們教授的挑戰,但我會將它標記爲一個。如何使用time.h庫創建一個計時器?

問題是創建一個打字遊戲,具有難度匹配,時間限制(秒)和分數不同的3個級別。現在我對程序本身沒有任何問題,我遇到的問題是實現定時器,它應該與操作系統無關(我假設,因爲唯一的提示是time.h)。我所做的是錯誤的,因爲這只是從我讀到有關time.h中粗略估計,這也是醜陋的代碼:

time_t start; 
int timer = time(&start); 
... 
time_t current; 
for(ctr=0;ctr<10;ctr++) 
{ 
    ... 
    if(time(&current) == (timer+40)) 
     {  
      break; 
     } 
    ... 
} 

作品,但有時並不大部分的時間,因爲這只是一個粗略的猜測。任何建議,將不勝感激。

回答

2

首先,您不需要需要time函數提供參數time_t*。如果您只是要使用其返回值,則撥打time(NULL)是很好的(也很常見)。這樣你可以消除startcurrent變量,如果它們沒有被使用。

其次,從time返回值是time_t,不int,所以timer應該time_t型。

最後,看看你的測試

if(time(&current) == (timer+40)) 

,並考慮如果時間過去了40秒自啓動,而你在做上述試驗別的東西發生了什麼,現在是,就是說,由於43秒開始。你還不想休息嗎?那麼==是否適合測試?

+0

謝謝先生。現在我想我明白了,讓我試試。 – arscariosus 2010-09-01 17:34:48

+0

再次感謝先生。現在一切正常。 :d – arscariosus 2010-09-01 17:42:12