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