検索

ホームページ  >  に質問  >  本文

C++ 入力に関する質問

そのようなプログラムがあります:

リーリー

大きな数値 (99999999999 など、実際には 4 バイトを超えるだけで十分です) または文字を直接入力すると、次の出力が生成されます。 リーリー

これをどう理解すればよいでしょうか?

C 初心者はひざまずいてマスターにアドバイスを求めます

漂亮男人漂亮男人2706日前873

全員に返信(2)返信します

  • 巴扎黑

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

    型長を超えるデータを入力したため、cinはfail状態となり、以降の入力操作は行われません。
    これらの変数は初期化していないため、すべてランダムな値です。
    このとき、cin.fail()はtrueになります。入力を続けるには cin.clear() が必要です。

    返事
    0
  • 淡淡烟草味

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

    Visual Studio を使用していますか?

    入力した非常に大きな数字または文字は int 型の範囲を超えているため、未定義の動作が発生します。

    VS 2015におけるC++ int型の範囲は-2147483648~2147483647です。

    オーバーフローが発生した場合の処理​​方法はコンパイラに依存します。

    返事
    0
  • キャンセル返事