[완료]printf 에 \r 을 쓰는 경우..

liush79의 이미지

printf 에 \r 을 써서 카운트를 보여주는 프로그램인데..

#include <stdio.h>
#include <unistd.h>
 
int main()
{
	int cnt=0;
 
	while(1) {
		printf("\rtest..%03d", cnt++);
		usleep(100000);	// 0.1s
	}
	return 0;
}

프로그램 돌려보면 찍히긴 찍힙니다만
1..2..3..4..5..6.. 보이는게 아니라
50..140...230.. 이런식으로 보이는데 왜그런거죠?
터미널방식이 틀려서 그런가요?

해결 방법좀 알려주세요

mrjh76의 이미지

다음과 같이 fflush를 추가해 보세요!~

printf("\rtest..%03d", cnt++);
fflush(stdout);
liush79의 이미지

fflush(stdin) 은 해봤었는데
stdout 을 비워야 하는군요 -0-;;;

eungkyu의 이미지

오히려 fflush(stdin)이 이상한 코드입니다 =_=