そのようなプログラムがあります:
大きな数値 (99999999999 など、実際には 4 バイトを超えるだけで十分です) または文字を直接入力すると、次の出力が生成されます。 リーリー
型長を超えるデータを入力したため、cinはfail状態となり、以降の入力操作は行われません。 これらの変数は初期化していないため、すべてランダムな値です。 このとき、cin.fail()はtrueになります。入力を続けるには cin.clear() が必要です。
Visual Studio を使用していますか?
入力した非常に大きな数字または文字は int 型の範囲を超えているため、未定義の動作が発生します。
VS 2015におけるC++ int型の範囲は-2147483648~2147483647です。
オーバーフローが発生した場合の処理方法はコンパイラに依存します。
型長を超えるデータを入力したため、cinはfail状態となり、以降の入力操作は行われません。
これらの変数は初期化していないため、すべてランダムな値です。
このとき、cin.fail()はtrueになります。入力を続けるには cin.clear() が必要です。
Visual Studio を使用していますか?
入力した非常に大きな数字または文字は int 型の範囲を超えているため、未定義の動作が発生します。
VS 2015におけるC++ int型の範囲は-2147483648~2147483647です。
オーバーフローが発生した場合の処理方法はコンパイラに依存します。