해결된 질문
작성
·
192
1
위 코드를 실행하고 0.12 같은 소수를 입력했을때에
사용자가 int에 비정상 float 값을 입력하여
0.12에서 소수점 자리를 잘라내고
0으로 자동 인식되면서 자동 종료되는것은 알겠는데요,
3.14 같은 소수를 입력했을 때에는 3으로 인식되어
다시 프로그램이 작동해야 할 것 같은데
그냥 종료가 됩니다..ㅠ
무슨 문제가 있는걸까요..?ㅠㅠ
답변 2
3
안녕하세요?
좋은 시도를 하셨다고 생각합니다.
어떻게 입력을 받아들일까.. 에 관해서 고민을 해보셔야할 것 같은데
아직 처음 부분을 진행하고 계셔서 이해하기 힘들 수 있을 것 같습니다.
간단하게 말씀드리면 3.14를 입력하시게 되는 경우 정수형 변수를 >> 연산자의 피연산자로 두셨기 때문에
3.14가 입력으로 일단 넘어가지만, cin 은 '3' 을 받아들인 후 첫번째 루프가 종료됩니다.
그리고는 두번째 루프가 실행되는데 이 때 '.' 을 받습니다.
이 '.' 을 받는 경우가 문제가 되는데, 이 때 cin이 어떻게 행동할지는 한 번 시도해보셨으면 좋겠습니다.
0