2011-11-24 69 views
1

我需要在c中創建一個計數器,而且Im中有一個好看的問題。這裏是我的代碼:在c中打印更新變量

time_t start = time((time_t *) NULL); 
    time_t finish = start; 
    while((finish-start) < 5){ 
     finish=time((time_t *)NULL); 
     printf("TIME : %d\n", (finish-start)); 
    } 
    printf("TIMER HAS STOPED !"); 

我whant是顯示(完成啓動)一樣的值:TIMER:值,用「價值」,根據該變量beeing更新,但我什麼「定時器」保持在屏幕上,只有值才能更新。就像現在它在屏幕上寫入TIME:約100萬次。 Thx提前:X!

+0

請賞的人誰已經幫助你並[接受你的問題的答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。謝謝。 – DarkDust

回答

1

也許你想

printf("TIME : %d\r", (finish-start)); 
fflush (stdout); 

但是對於更復雜的命令&終端導向的I/O,可以考慮使用ncurses

1

嘗試更換

的printf( 「TIME:%d \ n」,(結束開始));

通過

的printf( 「TIME:%d \ R」,(完成啓動));

+0

Dude Thats exactely我在找什麼thx一堆 –

1

如果您使用的是Windows,看看SetConconsoleCursorPosition

如果您在支持ncurses的系統上,請使用它。

或者,更hackish的,但如果它工作在系統上,這是很容易,使用printf的\b逃生:

printf("%2d", i);

delay(400);

printf("\b\b");