fprintf 에서 %c ,13 이경우 ㅠ

qodwlql의 이미지

예를 들어 fprintf( "aaa = %s%c" , 123, 13) ;

이게 무슨뜻인가요?아스키코드와관련있는거같은데..리눅스상에서 소스입니다.

아스키코드로 13이 CR 인데 이게무슨경우인가요 엔터효과인가요?

zalhae의 이미지

Carriage Return을 의미합니다. C에서는 '\r'로 표기합니다.

일단 예를 설명하면서 오타가 있으신 것 같은데요.
printf("aaa=%s%c", 123, 13);
와 같이 하면 컴파일은 되지만 실행하게되면 프로그램이 죽을 겁니다.

printf("aaa=%s%c", "123", 13);
와 같이 했다고 가정한다면 콘솔에서 커서가 맨 앞으로 이동하게되지만
출력 라인은 변경이 없기 때문에 화면에 나오는 것은 없게 됩니다.

응용하여
printf("aaa=%s%c", "123", 13);
printf("XXX\n");
printf("---\n");

와 같이 연속하여 출력할 경우 결과는 아래와 같이 aaa 앞으로 커서가 이동한 상태에서 XXX로 덮어 버리면서
XXX=123
---
출력됩니다.

winchild의 이미지

오타이다에 한표...
컴파일할때도 Warnning 에러가 날텐데요...

- 겨울아찌 -
winchild@kldp.org

- 겨울아찌 -
winchild@gmail.com