Menu choix avec plusieurs choix ?

kyorinzo Messages postés 13 Statut Membre -  
[Dal] Messages postés 6373 Statut Contributeur -
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 ;)
A voir également:

1 réponse

[Dal] Messages postés 6373 Statut Contributeur 1 106
 
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