# Probleme avec switch

**URL:** <https://www.debian-fr.org/t/probleme-avec-switch/86180>\
**Category:** Programmation\
**Created:** [Février 24, 2022, 11:34 UTC](https://www.debian-fr.org/t/probleme-avec-switch/86180 "2022-02-24T11:34:52Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Février 24, 2022, 11:34 UTC](https://www.debian-fr.org/t/probleme-avec-switch/86180/1 "2022-02-24T11:34:52Z")

</div>

Bonjour

Voici un code qui presente le menu d un restaurant , le probleme est que lorsque je rentre un choix je dois le taper 2 fois avant que le message dans la boucle s affiche.  
Quelqu un peux m aider ?

```auto
#include <stdio.h>

int main ()

{
int choixMenu;
printf("===Menu===");
printf ("1-Royal Cheese\n");
printf ("2-Mc Bacon\n");
printf ("3-Mc Delux\n");
printf ("4-Hamburger\n");
printf ("\n");
printf ("Votre Choix\n");
scanf ("%d",&choixMenu");
  switch (choixMenu)
{
case 1: printf ("Vous avez choisi le menu Royal Cheese\n");
break;
case 2: printf ("Vous avez choisi le menuMc Bacon \n");
break;
case 3: printf ("Vous avez choisi le menu Mc Delux\n");
break;
case 4: printf ("Vous avez choisi le menu shawarma \n");
break;
default:printf ("Vous n avez pas encore choisi\n");
}
return 0;
}

```

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Février 24, 2022, 12:15 UTC](https://www.debian-fr.org/t/probleme-avec-switch/86180/2 "2022-02-24T12:15:39Z")

</div>

La coloration syntaxique du forum met en évidence une erreur de syntaxe.  
Je ne pense pas que ton problème vienne de là, le compilateur t’aurait déjà envoyé balader.  
Je n’ai pas pratiqué le C depuis de nombreuses années, mais je me souviens que ta façon de récupérer la valeur n’est pas conseillée.  
Essaie un truc de ce genre pour voir :

```auto
#include <stdio.h>

int main () {
	int choixMenu;
	
	printf("===Menu===\n");
	printf ("1-Royal Cheese\n");
	printf ("2-Mc Bacon\n");
	printf ("3-Mc Deluxe\n");
	printf ("4-Hamburger\n");
	printf ("\n");
	printf ("Votre Choix\n");
	scanf ("%d",&choixMenu);
	
	switch (choixMenu) {
		case 1:
			printf ("Vous avez choisi le menu Royal Cheese\n");
			break;
		case 2:
			printf ("Vous avez choisi le menu Mc Bacon\n");
			break;
		case 3:
			printf ("Vous avez choisi le menu Mc Deluxe\n");
			break;
		case 4:
			printf ("Vous avez choisi le menu Hamburger\n");
			break;
		default:
			printf ("Vous n'avez pas encore choisi\n");
	}
	return 0;
}

```

Ça semble se compiler chez moi et faire ce que j’ai l’impression que tu veux faire.  
Pour l’indentation, j’utilise principalement Python pour la programmation, je trouve ça plus clair comme ça.

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Février 24, 2022, 12:17 UTC](https://www.debian-fr.org/t/probleme-avec-switch/86180/3 "2022-02-24T12:17:52Z")

</div>

> [@Pat66](#):
>
> `scanf ("%d",&choixMenu");`

Il y a un double quote en trop.

---

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Février 24, 2022, 12:24 UTC](https://www.debian-fr.org/t/probleme-avec-switch/86180/4 "2022-02-24T12:24:46Z")

</div>

Merci Zargos

c est une erreur qui survenue en tapant le code sur le forum dans mon code initial le double quote ne figure pas

---

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Février 24, 2022, 12:33 UTC](https://www.debian-fr.org/t/probleme-avec-switch/86180/5 "2022-02-24T12:33:00Z")

</div>

Personnellement je vois pas la difference entre mon code et le tiens j ai fais comme toi .  
rien n a change.

---

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Février 24, 2022, 1:36 UTC](https://www.debian-fr.org/t/probleme-avec-switch/86180/6 "2022-02-24T13:36:46Z")

</div>

j ai trouve la solution dans mon code j ai mis %d dans le scanf en le retirant tout est rentre dans l ordre

Merci d avoir pris la peine de repondre

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Mars 1, 2022, 11:01 UTC](https://www.debian-fr.org/t/probleme-avec-switch/86180/7 "2022-03-01T11:01:06Z")

</div>

Je n’ai pas compris, tu peux nous partager ta solution, s’il te plaît ?

---

<div class="post-metadata">

**Author:** ![dindoun](https://www.debian-fr.org/user_avatar/www.debian-fr.org/dindoun/32/4281_2.png) [@dindoun](https://www.debian-fr.org/u/dindoun)\
**Post date:** [Mars 1, 2022, 2:15 UTC](https://www.debian-fr.org/t/probleme-avec-switch/86180/8 "2022-03-01T14:15:58Z")

</div>

si j’en crois mon analyse de l’écriture moderne ( non utilisation des temps des verbes, des ponctuations, oublie de la fin de la démonstration ) il veut dire qu’il a écrit

```auto
scanf ("%s",&choixMenu);

```

à la place de

```auto
scanf ("%d",&choixMenu);

```

Viva el python !
