C++ , problem

Fermé
simyamsmasters Messages postés 45 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 23 mars 2010 - 17 juin 2009 à 05:48
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 17 juin 2009 à 09:02
Bonjour,

J ai un problem et j aimerais bien de l aide. j ai une petite boucle dont que lorsque j entre des lettres elle me signale des erreurs mais (resultat attendu) mais la deuxieme fois apres avoir entrer un chffre elle me signe une erreur lorsque j entre de nouveau des lettres

Code source


do
{
Eingabe: cout << "\n Was wollen Sie? \n" << endl;
cout << "Neue Geldausgabe" <<" Option 1" << endl;
cout << "Ausgabesumme eines Monats" <<" Option 2" << endl;
cout << "Haeufigkeitsverteilung" << " Option 3" <<endl;
cout << "Beenden"<< " Option 4\n\n>>";

cin >> option ;
if(cin.fail())
{
cin.clear();
cin.ignore(10,'\n');
}

switch(option)
{
case 1: Haushaltsverwaltung::add_obj();
break;

case 2: cout <<"\n" << Haushaltsverwaltung::suchen_Summe() << "\n";
break;

case 3: cin >> graphik;
break;

case 4: break;

default: cout << "\n******************FALSCHE EINGABE********************\n" << endl;
goto Eingabe;
}
}while(option!=4);

Je ne sais pas si c est parceque ma condition pour verifier l entrer est fausse si oui s il vous plait j attend vos remarques.

2 réponses

//Code source

#include <cstdlib>
#include <iostream>
#include <iomanip>

using namespace std;

int main(int argc, char *argv[])
{
int Option;

do
{
cout << "\n Was wollen Sie? \n" << endl;
cout << "Neue Geldausgabe" <<" Option 1" << endl;
cout << "Ausgabesumme eines Monats" <<" Option 2" << endl;
cout << "Haeufigkeitsverteilung" << " Option 3" <<endl;
cout << "Beenden"<< " Option 4\n\n>>";

cin >> option ;
if(cin.fail())
{
cin.clear();
cin.ignore(10,'\n');
}

switch(option)
{
case 1: Haushaltsverwaltung::add_obj();
break;

case 2: cout <<"\n" << Haushaltsverwaltung::suchen_Summe() << "\n";
break;

case 3: cin >> graphik;
break;

default: cout << "\n******************FALSCHE EINGABE********************\n" << endl;

}
}while(option!=4);

} // end main
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
17 juin 2009 à 09:02
ça doit être une erreur de tampon cin...
fait une sorti de option pour vérifier sa valeur.
0