• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

프로젝트 코딩후 실행하는데

18.10.23 00:41 작성 조회수 75

0

실수로 오타가 나서 문자가 아닌 영어나 기호를 쳐버리니,

chance가 순식간에 다 소진되면서 게임이 끝나버리네요.

왜 else if에 오류에서 멈춰지지 않는지 궁금해요

답변 1

답변을 작성해보세요.

0

안녕하세요 나도코딩입니다.

코드에서는 "정수" 를 입력받기 위해 scanf 에 %d 를 명시했는데 "문자"가 들어오니 정상적으로 입력을 받지 못한 상황이네요, scanf 가 실패하게되면, 입력 버퍼에 있는 값을 지우지 않습니다.그래서 다음 루프에서 scanf를 실행할 때에도 처음 입력값 그대로 사용하기 때문에 말씀하신 문제가 발생합니다. 아래 링크 중 답변이 가장 많은 코드를 참고해볼만 합니다.

https://stackoverflow.com/questions/1716013/why-is-scanf-causing-infinite-loop-in-this-code