2011-02-08 5 views
0
int main() 
{ 
    time_t ltime; 
    time(&ltime); 
    tm * pTm = localtime(&ltime); 
    while(true) 
    { 
     for(int i=0;i<1000;i++) 
     { 
      if(i==999) 
      { 
       printf("Program time is: %02d:%02d:%02d \r", pTm->tm_hour, pTm->tm_min, pTm->tm_sec); 
       i=0; 
      } 
     } 

    } 

} 

하지만 반복되지 않습니다 !! !!같은 줄에서 시간을 변경하는 방법

+0

은'위해 (I = 1000 나 ++ I = 0 INT)? – John

+0

프로그램에 오타가 있습니다. 조건이'i == 1000'이면, for 루프는 결코 실행되지 않고 while 루프는 무한히 실행됩니다. – Mahesh

+1

그 'for'의 콜론은 무엇입니까? – John

답변

1

값을 변경하려면 각 반복을 pTm 새로 고침해야합니다. '응;

while(true) 
{ 
    // get pTm again here. 
    sprintf(buf, "Program time is: %02d:%02d:%02d\n", pTm->tm_hour, pTm->tm_min, pTm->tm_sec); 
} 
3

printf() 형식 문자열 끝에 \r을 사용하십시오.

편집 : 그리고 aaz가 언급했듯이 기본적으로 줄 바꿈이기 때문에 fflush(stdout)이어야합니다.

+2

'fflush (stdout)'을 잊지 마세요. – aaz

0
int main() { 
    while(true) { 
    time_t now = time(0); 
    tm *t = localtime(&now); 
    printf("Program time is: %02d:%02d:%02d \r", t->tm_hour, t->tm_min, t->tm_sec); 
    fflush(stdout); 
    sleep(1); 
    } 
}  
관련 문제