Probleme menu en C

Résolu
Bonjour,

Je suis en train de réaliser un programme en C pour mon boulo, je suis novice en la matière et j'ai un problème avec mon menu.
En fait il fonctionne bien mais j'ai un bug.

Je m'explique:
Mon programme propose à l'utilisateur via un menu plusieurs options ( 1 pour faire tache A, 2 pour faire tache B ...).
Je souhaite obtimisé ce menu, si l'utilisateur tape un choix non proposé cela doit afficher un message d'erreur, je parviens a le faire si il tape un chiffre (exemple 9 car il n'y a que 5 options) mais s'il tape une lettre mon programme boucle a l'infini...

Quelqu'un sait comment je peux faire??

Merci d'avance

2 réponses

  1. Impek!!

    Encore merci!

    Tu m'a resolu deux problemes en deux jours!!!
    bravo!
    0
    1. Contributeur
      Salut,
      Oui, cela est normal que cela boucle infiniment. En fait, je te conseille plutôt d'utiliser un char pour stocker la réponse de l'utilisateur, de vider le buffer clavier, et de se servir du code ascii (et non du chiffre) pour le choix du menu.
      Ce qui donne :
      char fin=0;
      char rep;
      
      while(! fin) {
      
         affichage(); //affichage du menu
      
         printf("choix : ");
         rep=getchar();
      
         while(getchar()!='\n'); //on vide le buffer clavier
      
         switch(rep){
            case '1': //on utilise '1' et non 1.
                 fonction1();
                 break;
             //etc
             case '0': //choix quitter
                 fin=1;
                 break;
             default :
                  puts("choix inexistant");
         }
      }
      
      //fin du programme
      return 0;
      
      0