Menu choix avec plusieurs choix ?

Fermé
kyorinzo Messages postés 9 Date d'inscription dimanche 10 novembre 2013 Statut Membre Dernière intervention 23 juillet 2014 - Modifié par pijaku le 13/12/2013 à 09:56
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 13 déc. 2013 à 09:55
Bonjour,

int Menu()
{
 int Choix;
 do
 {
  system("cls"); //efface l'Ècran
  printf("             *******************************************************\n");
  printf("             *                                                      *\n");
  printf("             *      Menu Principal de programme                    *\n");
  printf("             *                                                      *\n");
  printf("             *******************************************************\n");
  printf("\n                 1- Pizza                                                                                \n ");
  printf("\n                 2- spaghetti                                                                         \n ");
  printf("\n                 3- Jus d'orange                                                               \n ");
  printf("\n                 4- la soupe                                                                       \n");
  printf("\n                 5- fret                                                                        \n");
  printf("\n                 0- quiter                                                                       \n");
  printf("\n              *****************************************************\n");
  printf("\n\n\n\n\n\n\n\n\n\n\n\nChoix :");
  scanf("%d",&Choix);
 } while (Choix <1 || Choix >4);
 system("cls");
 return Choix;
}

comment puis-je modifier ce programme pour avoir 2 choix ou 3 par exemple 1 et 3 ou 2,5 et 3 et quitter le menu dés que je tape 0 et utiliser ses choix après ??!!
merci d'avance ;)

1 réponse

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié par [Dal] le 13/12/2013 à 10:00
Salut kyorinzo,

Alors, ce n'est pas super clair ce que tu dis.

Mais si ce que tu veux (si j'ai bien compris) c'est que l'utilisateur doive faire de 2 à 3 choix obligatoirement parmi les 5 proposés, tu peux lui donner instructions de le faire en saisissant ses choix sous la forme de numéros à la suite séparés par des espaces ou des virgules et ENTER.

Du coup le choix 0 n'est pas nécessaire.

Ce qui sera nécessaire, cela sera de parser la ligne obtenue, pour vérifier les choix (qu'il y en a bien de 2 à 3, pas moins, pas plus, et que l'utilisateur a bien tapé des numéros acceptables comme "2,5, 3" et pas autre chose du genre "titi toto" ou "2001, l'Odyssée de l'espace").

Pour parser, tu peux te servir de
strtok()
: http://www.cplusplus.com/reference/cstring/strtok/

Au lieu de renvoyer le choix par un int retourné par la fonction, il te faudra imaginer autre chose, par exemple, mettre les choix dans un tableau passé en paramètre dans un tableau terminé par 0. Du coup aussi, tu as intérêt à ce que les choix affichés soient eux-mêmes aussi tirés d'un autre tableau, puisque tu vas les utiliser à deux endroits au moins, sinon plus.

Donc ta fonction Menu aura au moins deux arguments consistant en deux tableaux.

Ce n'est pas une simple modification, c'est une fonction qui n'a rien à voir.


Dal
1