Inflearn Community Q&A
프로젝트 코딩후 실행하는데
Written on
·
182
0
실수로 오타가 나서 문자가 아닌 영어나 기호를 쳐버리니,
chance가 순식간에 다 소진되면서 게임이 끝나버리네요.
왜 else if에 오류에서 멈춰지지 않는지 궁금해요
c
Answer 1
0
nadocoding
Instructor
안녕하세요 나도코딩입니다.
코드에서는 "정수" 를 입력받기 위해 scanf 에 %d 를 명시했는데 "문자"가 들어오니 정상적으로 입력을 받지 못한 상황이네요, scanf 가 실패하게되면, 입력 버퍼에 있는 값을 지우지 않습니다.그래서 다음 루프에서 scanf를 실행할 때에도 처음 입력값 그대로 사용하기 때문에 말씀하신 문제가 발생합니다. 아래 링크 중 답변이 가장 많은 코드를 참고해볼만 합니다.
https://stackoverflow.com/questions/1716013/why-is-scanf-causing-infinite-loop-in-this-code





