Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/08/2013, à 10:30

kboo

C++ cin et overflow (débutant..)

Bonjour,
Je me trouve bloqué bêtement, j'essaye de rendre plus robuste mon code:


quand je fais un "std::cin >> variable" avec variable de type int et qu' à l'exécution je rentre une valeur trop grand j'obtiens un overflow... (ça remli les autres cin...)



help!!
merci bien

Hors ligne

#2 Le 02/08/2013, à 19:30

NicoZic56

Re : C++ cin et overflow (débutant..)

Depuis http://www.cplusplus.com/forum/articles/6046/, voici le code.
Contrairement à ce que l'on pourrait penser, ce n'est pas une question si simple...

 string input = "";

 // How to get a string/sentence with spaces
 cout << "Please enter a valid sentence (with spaces):\n>";
 getline(cin, input);
 cout << "You entered: " << input << endl << endl;

 // How to get a number.
 int myNumber = 0;

 while (true) {
   cout << "Please enter a valid number: ";
   getline(cin, input);

   // This code converts from string to number safely.
   stringstream myStream(input);
   if (myStream >> myNumber) {
     break;
   }
   cout << "Invalid number, please try again" << endl;
 }
 cout << "You entered: " << myNumber << endl << endl;

Le principe est de passer par getline, ce qui permet d'avoir en une seule fois tout ce qui est saisi jusqu'au caractère entrée.


============
"Il n'y a que deux sortes de langages de programmation: ceux dont les gens disent toujours du mal et ceux que personne n'utilise."
Bjarne Stroustrup

Hors ligne

#3 Le 05/08/2013, à 09:48

kboo

Re : C++ cin et overflow (débutant..)

Salut et merci NicoZic56!
Je vais tester ça mais c'est si compliqué ?!  c'est étonnant en tout cas

Hors ligne