인프런 커뮤니티 질문&답변
왜 q를 입력하면 무한 반복이 되는건가요~?
작성
·
396
2
안녕하세요!
제가 만든 수식이 "Input number : " 가 무한으로 출력되는 이유를 알고 싶어서 질문남깁니다!

나름 지금까지 열심히 강의를 듣고, 그것들을 토대로 만들었는데 정답은 아니었나봅니다..!
그치만 여기서 안되는 이유가 궁금해서 질문 남깁니다!
잘부탁드립니다!
퀴즈
scanf() 함수의 반환값은 주로 무엇을 의미할까요?
읽어들인 문자 수
오류 코드
성공적으로 읽어들인 변수 수
입력된 값의 합계
답변 2
2
안녕하세요
%d는 문자인 'q'를 받지 못합니다.
(문자를 받으려고 한다면 %c 를 사용해야 합니다.)
int check = scanf("%d", &number);
printf("check : %d \n" , check) ;
로 코드를 작성한 후 input 값으로 숫자가 아닌 알파벳 문자를 넣어보신다면
결과값이 1이 아닌 0 임을 확인하실 수 있습니다.
(scanf 함수가 반환하는 리턴 값은 정상적으로 읽어들인 변수의 갯수입니다.)
정말 도움이 되었습니다. 나르비님이 공유해주신 int check 코딩방법도 알게 되었네요!
공유해주신 코드를 이용해서 한 가지 실험을 해봤는데,
짝수인지 홀수 인지 파악하는 계산하는 강의 중에 제가 처음에 잘못 작성한 코드가 있습니다.
while (scanf("%d", &number) % 2 == 0)
{
printf("Even");
}
printf("Odd");
아래에
int check = (scanf("%d", &number) % 2 == 0);
printf("check : %d \n", check);
를 입력하면 입력하는 숫자가 모두 0이 나오는데 이것은 scanf로 숫자를 받고 나머지 2를 계산한게 0이라는 뜻이기 때문인걸까요~?
바쁘실텐데 잘부탁드리겠습니다!
아 그렇군요!
제가 그러면 제대로 이해한게 맞을까요?
scanf("%d", &number) 에 7을 입력하면,
number의 주소에 해당하는 메모리에 7을 덮어써주고 1을 리턴하는 건가요~?
1






답변 감사합니다 :)