Rumah > Soal Jawab > teks badan
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
巴扎黑2017-07-03 11:44:01
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.
淡淡烟草味2017-07-03 11:44:01
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.