Bonsoir,

Voici un bout de code fait sous code::block 17.12 et produit une chose étrange (à mes yeux) : lorsque je rentre "f" ou "F" au prompt du cin (en gras dans le code), il ne sort pas de la boucle...
Le debugger passe bien par le if (true) et me confirme aussi que la valeur de ipt est "f" ou "F" mais en passant sur le while (en gras dans le code), il repart au do sans sortir.

J'ai passé 2 soirées sur ça et je sèche...
Quelqu'un a une idée ?

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
 string ipt="";

    for( int i(0); i<nbJoueurs; i++) // ici nbJoueurs vaut 4
    {
        do
        {
            if (!joueurElimine[i]) // condition true par défaut
            {
                system("cls");
                ecranVille(carte, lVille, i);
                cout << endl << "Pour gérer les garnisons, entrer 'g'" << endl;
                cout << "Pour gérer les armées, entrer 'a' " << endl;
                cout << "Pour passer à un autre joueur, entrer 'f' " << endl;
                cout << endl << "choix ? ";
                cin >> ipt;
                if(ipt=="g" || ipt=="G") ecranGarnison(lGarnison, lVille, i);
                if(ipt=="a" || ipt=="A") ecranGarnison(lArmee, lVille);
            }
            else ipt="f";
        } while(ipt!="f" || ipt!="F");
    }