Soalan tentang input C++
漂亮男人
漂亮男人 2017-07-03 11:42:01
0
2
871

Ada program sebegini:

#include <iostream>

using namespace std;

int main()
{
    int a, b, c, d, e, f;
    cin >> a;
    cout << endl << "a = " << a << endl << endl;
    cin >> b;
    cout << endl << "b = " << b << endl << endl;
    cin >> c;
    cout << endl << "c = " << c << endl << endl;
    cin >> d;
    cout << endl << "d = " << d << endl << endl;
    cin >> e;
    cout << endl << "e = " << e << endl << endl;
    cin >> f;
    cout << endl << "f = " << f << endl << endl;
    return 0;
}

Jika saya terus memasukkan nombor yang besar (seperti 99999999999, sebenarnya ia hanya memerlukan >4 bait), atau huruf, output berikut akan dihasilkan:

a = 2147483647


b = 0


c = 0


d = 0


e = 4197408


f = 0

Bagaimana untuk memahami ini?

Pemula C++ melutut dan meminta nasihat tuan

漂亮男人
漂亮男人

membalas semua(2)
巴扎黑

Oleh kerana anda memasukkan data yang melebihi panjang jenis, cin menjadi keadaan gagal, dan operasi input masa hadapan tidak akan dilakukan.
Anda tidak memulakan pembolehubah tersebut, jadi semuanya adalah nilai rawak.
Pada masa ini, cin.fail() akan menjadi benar. cin.clear() diperlukan untuk meneruskan menaip.

淡淡烟草味

Adakah anda menggunakan Visual Studio?

Nombor atau huruf yang sangat besar yang anda masukkan melebihi julat jenis int, mengakibatkan tingkah laku tidak ditentukan.

Julat jenis C++ int dalam VS 2015 ialah -2147483648~2147483647.

Cara mengendalikan limpahan apabila ia berlaku bergantung kepada penyusun.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan