다음과 같은 프로그램이 있습니다:
으아아아큰 숫자(예: 99999999999, 실제로는 4바이트만 필요)나 문자를 직접 입력하면 다음과 같은 출력이 생성됩니다.
으아아아이것을 어떻게 이해하나요?
C++ 초보자는 무릎꿇고 마스터에게 조언을 구하세요
巴扎黑2017-07-03 11:44:01
타입 길이를 초과하는 데이터를 입력했기 때문에 cin은 실패 상태가 되어 향후 입력 작업이 수행되지 않습니다.
해당 변수를 초기화하지 않았으므로 모두 임의의 값입니다.
이때 cin.fail()은 true가 됩니다. 계속 입력하려면 cin.clear()가 필요합니다.
淡淡烟草味2017-07-03 11:44:01
Visual Studio를 사용하고 있나요?
입력한 매우 큰 숫자나 문자가 int 유형의 범위를 초과하여 정의되지 않은 동작이 발생합니다.
VS 2015의 C++ int 유형 범위는 -2147483648~2147483647입니다.
오버플로 발생 시 처리 방법은 컴파일러에 따라 다릅니다.