rose0122   3년 전

여기다가 아무 수 입력해도

컴파일 오류 나는데 이유가 뭔가요?

djm03178   3년 전

질문을 잘 이해하지 못하겠습니다. 컴파일 에러가 났다면 실행 파일 자체가 생성되지 않으므로 수를 입력할 수도 없습니다.

rose0122   3년 전

수를 입력한 뒤에 코드가 정상적으로 종료되지 않아요

djm03178   3년 전

그것은 컴파일 에러가 아니라 런타임 에러라고 부르는 것입니다. a는 char형인데, %d는 int형에 입력받기 위한 서식이므로 정상적으로 수를 입력할 수 없습니다.

rose0122   3년 전

그런데 char 형은 정수도 1바이트로 입력받고 출력할 수 있지 않나요?

rose0122   3년 전

혹시 %c 로 받고 출력만 %d 로 하는 건가요?

djm03178   3년 전

char형이 정수형인 것은 맞으나 char형에 직접 scanf를 써서 정수를 입력받으려면 %d가 아니라 %hhd로 써야 합니다. https://en.cppreference.com/w/... 를 참조하세요.

djm03178   3년 전

출력할 때는 char를 넘겨도 int로 변환되어 넘어가니 그냥 %d를 쓰면 됩니다.

rose0122   3년 전

감사합니다

(댓글 잘 써주셔서 감사해요)

댓글을 작성하려면 로그인해야 합니다.