2011-11-24 78 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");