작성
·
159
1
강의를 듣다가 아래 사진은 제가 직접 짠 코드고 위의 사진은 교수님이 보여주신 정답코드인데 printf함수를 putchar 함수로 바꾸니 원하는 결과가 나왔습니다. Printf함수로는 왜 안되는건가요??
답변 1
2
안녕하세요, 답변 도우미 Soobak 입니다.
강의 8.5 숫자와 문자를 섞어서 입력받기, 초반 부분의 void display(char cr, int lines, int width);
함수 작성해보기 퀴즈에 대한 질문이시군요.
putchar()
함수 대신 printf()
함수를 사용하셔서 문제가 생긴 것이 아니라, printf()
함수의 사용 자체에 문제가 있으셨기 때문입니다.
질문자님께서 작성하신 코드 중, printf("%c", &cr);
에서 %c
는 문자(char
)를 출력하는 형식 지정자 입니다.
하지만, &cr
은 cr
변수의 주소를 나타내기 때문에, 이 경우 printf()
함수는 문자의 주소를 문자로 출력하려고 시도하고, 이는 정의되지 않은 행동을 초래하게 되어 예상치 못한 문자가 출력되는 것입니다.scanf()
함수의 사용과 혼동이 있으셨던 것 같습니다.
올바른 사용법은 printf("%c", cr);
입니다. 👍