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)
Impossible de comprendre, quelqu'un peut m'aider?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
Y a t-il un champion dans la salle?
Partager