>  Q&A  >  본문

C++ 입력에 대한 질문

다음과 같은 프로그램이 있습니다:

으아아아

큰 숫자(예: 99999999999, 실제로는 4바이트만 필요)나 문자를 직접 입력하면 다음과 같은 출력이 생성됩니다.

으아아아

이것을 어떻게 이해하나요?

C++ 초보자는 무릎꿇고 마스터에게 조언을 구하세요

漂亮男人漂亮男人2637일 전818

모든 응답(2)나는 대답할 것이다

  • 巴扎黑

    巴扎黑2017-07-03 11:44:01

    타입 길이를 초과하는 데이터를 입력했기 때문에 cin은 실패 상태가 되어 향후 입력 작업이 수행되지 않습니다.
    해당 변수를 초기화하지 않았으므로 모두 임의의 값입니다.
    이때 cin.fail()은 true가 됩니다. 계속 입력하려면 cin.clear()가 필요합니다.

    회신하다
    0
  • 淡淡烟草味

    淡淡烟草味2017-07-03 11:44:01

    Visual Studio를 사용하고 있나요?

    입력한 매우 큰 숫자나 문자가 int 유형의 범위를 초과하여 정의되지 않은 동작이 발생합니다.

    VS 2015의 C++ int 유형 범위는 -2147483648~2147483647입니다.

    오버플로 발생 시 처리 방법은 컴파일러에 따라 다릅니다.

    회신하다
    0
  • 취소회신하다