인프런 커뮤니티 질문&답변

양주원님의 프로필 이미지
양주원

작성한 질문수

홍정모의 따라하며 배우는 C언어

4.10 scanf() 함수의 사용법

9분 45초 경 질문

작성

·

116

1

처음에 변수로 잡은 것이 double이면 scanf에 %d를 입력하면 왜 안 되는 건가요? 왜 %d가 아니라 %lf로 입력을 했는지 잘 이해가 가지 않습니다. 혼자서 %d 넣고 해보니까 에러가 떠요.

답변 1

1

안녕하세요, 질문&답변 도우미 Soobak 입니다.

 

scanf() 함수는 형식 지정자와 변수의 자료형이 일치해야 합니다.

 

double d = 0.0; 으로 선언된 변수 d 의 자료형은 double 이며,
double 자료형의 변수에 값을 입력받기 위해서는 %lf 형식 지정자를 사용해야 합니다.
(lflong float 을 의미하며, double 자료형을 위한 형식 지정자입니다.)

 

%d 형식지정자는 int 자료형을 위한 형식 지정자이기 때문에, 형식 지정자 불일치가 발생하게 됩니다.

 

질문해주신 강의의 0:53 부분의 표와 교수님의 설명을 참고해보시면 이해에 도움이 되실 것 같습니다.

 

양주원님의 프로필 이미지
양주원

작성한 질문수

질문하기