Il existe un tel programme :
#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;
}
Si je saisis directement un grand nombre (comme 99999999999, en fait il n'a besoin que de >4 octets) ou des lettres, le résultat suivant sera produit :
a = 2147483647
b = 0
c = 0
d = 0
e = 4197408
f = 0
Comment comprendre cela ?
Les novices en C++ s'agenouillent et demandent conseil au maître
Étant donné que vous avez saisi des données qui dépassent la longueur du type, cin devient un état d'échec et les futures opérations de saisie ne seront pas effectuées.
Vous n’avez pas initialisé ces variables, ce sont donc toutes des valeurs aléatoires.
À ce moment-là, cin.fail() sera vrai. cin.clear() est requis pour continuer à taper.
Utilisez-vous Visual Studio ?
Le nombre ou la lettre extrêmement grand que vous avez saisi dépasse la plage du type int, ce qui entraîne un comportement indéfini.
La plage du type int C++ dans VS 2015 est -2147483648~2147483647.
La manière de gérer le débordement lorsqu'il se produit dépend du compilateur.