bloqué en mode saisie dans la console
Bonjour,
Mon problème est qu’après une saisie dans un if imbriqué dans un while, l’exécution semble se mettre en pause.
Un peu comme lorsque le programme attend une valeur que l'utilisateur ne donne jamais.
Voici mon code, je comprends vraiment pas d'où viens le bug (le code s'exécute correctement jusqu'à la fin de la ligne 27)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
int ConfirmerMontant(double * montant)
{
string confirmer="r";// variable pour enregistrer la volonté de l'utilisateur//Egal a "r" pour rentrer dans le while de verif reponse utilisateur a la question souhaitez vous modifier votre montant de transaction?
int verif=-1, modif=1; // modif permet de rester dans la boucle while si egal a 1
// le montant saisi semble juste, une petite verif pour etre sûr
// sorti de boucle quand l'utilisateur a abandonné ou confirmé son choix
while (modif ==1)
{
// tant que l'utilisateur repond a coté
while (confirmer!= "a" && confirmer != "A" && confirmer!= "o" && confirmer != "O" && confirmer != "y" && confirmer != "Y" && confirmer!= "n" && confirmer != "N" && confirmer!= "1" && confirmer != "0")
{
cout << "\nREPERESouhaitez vous modifier votre montant de transaction?" << endl;
cout << "ou souhaitez vous abandonner la transaction?" << endl;
cout << "o, y ou 1 pour oui, n ou 0 pour non, a pour abandonner\n";
cin >> confirmer;
// permet de recuperer le enter de validation precedent
cin.get();
cout << "\nVous avez choisi\t"<< confirmer<< endl;
// je reduis les cas de saisie a seulement 3 pour pouvoir rester ou sortir de la bouble do while
if (confirmer == "o" || confirmer == "O" || confirmer == "y" || confirmer == "Y" || confirmer == "1" ) {
confirmer="y";
modif=1;
cout << "Indiquez le nouveau montant de la transaction"<< endl;
scanf("%lf",&montant);
cin.get();
}
else if (confirmer == "n" || confirmer == "N" || confirmer == "0" ) {confirmer="n" ; modif=0; verif=1;}
else if (confirmer == "a" || confirmer == "A" ) {confirmer="a" ; modif=0;verif=-1;}
}
}
return verif;
} |
Impossible de comprendre, quelqu'un peut m'aider?
Y a t-il un champion dans la salle? :calim2: