Formulaire switch et arrêt type : Voulez vous continuez ?

machavelio85 -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Je débute en C et je souhaite réaliser un ptit formulaire de fonctions pour m'entraîner. J'aurais aimé savoir si c'était possible, sans faire trop compliquer, d'effectuer un arrêt de fonction. Un truc genre (en console):

---Choix de votre fonction---
1: fonction 1
2: fonction 2
3: fonction 3
Votre choix ? 3
exécution de la fonction 3 ...
Voulez vous continuer ? (O/N)

J'ai déjà réalisé le switch pour le choix des fonctions, et ça fonctionne, mais ce que j'arrive pas à faire c'est le cas si l'utilisateur répond O, on ré-affiche le menu et si N on arrête. Je sais pas où je dois placer un if ou autre chose.

Merci d'avance pour vos réponses.

3 réponses

  1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    Salut machavelio85,

    Je pense que c'est plus ergonomique de faire :

    ---Choix de votre fonction---
    1: fonction 1
    2: fonction 2
    3: fonction 3
    4: quitter ce programme
    Votre choix ? 3
    exécution de la fonction 3 ...

    et que l'algorithme du programme ressemble à cela (pseudo-code, juste pour montrer la logique) :

    Faire
        effacer_ecran
        afficher_menu
        choix = demander_choix
        si choix différent de 4, alors executer_choix
    Tant que choix différent de 4
    

    Dal
    0
  2. machavelio85 Messages postés 1 Statut Membre
     
    Merci beaucoup Dal ;) ça m'a été très utile et en effet c'est beaucoup plus ergonomique comme ceci.
    0
  3. karara20 Messages postés 58 Statut Membre 9
     
    0
    1. karara20
       
      voila mon programme après modification

      http://tutodev1.blogspot.com/2013/06/choix-avec-switch-et-do-while.html
      0
    2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847 > karara20
       
      Ton code n'est pas bon. Tu mets des %s dans scanf pour lire des char. De plus tu ne vides pas le buffer.
      0
    3. karara20
       
      pour faire ça tu doit Ecrire la fonction fflush(stdin); après scanf
      est ça le résultat finale :après modification nb3::

      http://tutodev1.blogspot.com/2013/06/choix-avec-switch-et-do-while.html
      0
    4. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      pour faire ça tu doit Ecrire la fonction fflush(stdin); après scanf
      Certainement pas ! fflush() provoque un comportement indéterminé sur stdin.
      La façon standard est :
      int c;
      while ( (c=getchar()) != '\n' && c != EOF );
      0