Partage
  • Partager sur Facebook
  • Partager sur Twitter

Structure condition et boucle while

Sujet résolu
    21 février 2018 à 14:56:46

    Voici un "schéma" d'un programme que j'ai réalisé, illustrant le problème que je rencontre actuellement.

    int main()
    {
    	int i = 5;
    	int choix;
    	do
    	{
    		cout << "choix : 1,2 ou 3" << endl;
    		cin >> choix;
    		cin.ignore();
    
    		switch (choix)
    		{
    		case 1:
    			cout << 1 << endl; break;
    		case 2:
    			cout << "2" << endl; break;
    		case 3:
    			cout << "3" << endl; break;
    		default:
    			cout << "Relisez vous !!" << endl;
    			break;
    		}
    		i--;
    	}while (i > 1);
    	return 0;
    }
    Ce que fait ce programme est assez simple :

    dans une boucle while ( qui tourne arbitrairement sur 5 itérations, mais cela varie dans le vrai programme), j'ai comme choix de rentrer 1,2 ou 3, auquel cas le programme écrit la valeur rentrée, ou un autre nombre, auquel cas il écrit "relisez-vous". L'intérêt de ce programme est qu'il me permet de faire un choix à chaque itération. Cependant, si jamais, par erreur, je rentre autre chose qu'un nombre, cette entrée erronée ne sera pas prise en compte et toutes les itérations suivantes ne me proposent plus de choix et me marquent uniquement "relisez-vous" 5 fois (je vous conseille de tester pour voir par vous même).

    Ce que je voudrait, ce serait un code qui permette d'inclure une erreur de frappe autre qu'un nombre.

    J'ai déjà tenté de remplacer les switch par des if sans succès, ainsi que de mettre cin.ignore() sans succès non plus (je doute que cette dernière instruction ai un impacte, mais bon perdu pour perdu ^^).

    Je remercie par avance celui qui trouvera la solution :)


    • Partager sur Facebook
    • Partager sur Twitter
      21 février 2018 à 15:05:37

      -

      -
      Edité par KirbXCoucou 21 février 2018 à 15:10:25

      • Partager sur Facebook
      • Partager sur Twitter

      « Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
      D. Mendeleïev

        21 février 2018 à 15:06:37

        Lu'!

        Comment vérifier les valeurs saisies avec std::cin ?

        Autre note :

        * d'ailleurs, sur ce point le lien sur la vérification de std::cin n'est pas exemplaire.

        • Partager sur Facebook
        • Partager sur Twitter

        Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

          21 février 2018 à 15:36:16

          Ksass`Peuk a écrit:

          * d'ailleurs, sur ce point le lien sur la vérification de std::cin n'est pas exemplaire.


          Pourrais-tu expliquer pourquoi ?? edit : A cause de using namespace std ?

          Merci d'avance, et je prend note de tes conseils

          -
          Edité par CocoHi1 21 février 2018 à 15:38:38

          • Partager sur Facebook
          • Partager sur Twitter
            21 février 2018 à 15:41:04

            CocoHi1 a écrit:

            Pourrais-tu expliquer pourquoi ?? edit : A cause de using namespace std ?

            Oui.

            • Partager sur Facebook
            • Partager sur Twitter

            Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

            Structure condition et boucle while

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown