Bonjour,

J'ai une question qui peut paraitre bête, mais après plusieurs essaies, je ne trouve pas la solution.

Pour parfaire mon explication j'ai repri un code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
  long choixMenu;
 
  printf("=== Menu ===\n\n");
  printf("1. Royal Cheese\n");
  printf("2. Mc Deluxe\n");
  printf("3. Mc Bacon\n");
  printf("4. Big Mac\n");
  printf("\nVotre choix ? ");
  scanf("%ld", &choixMenu);
 
  printf("\n");
 
  switch (choixMenu)
  {
    case 1:
       printf("Vous avez choisi le Royal Cheese. Bon choix !");
       break;
    case 2:
       printf("Vous avez choisi le Mc Deluxe. Berk, trop de sauce...");
       break;
    case 3:
       printf("Vous avez choisi le Mc Bacon. Bon, ca passe encore ca ;o)");
       break;
    case 4:
       printf("Vous avez choisi le Big Mac. Vous devez avoir tres faim !");
       break;
    default:
       printf("Vous n'avez pas rentre un nombre correct. Vous ne mangerez rien du tout !");
       break;
  }
 
  printf("\n\n");
 
  system("PAUSE");
}
Le probleme avec ce code c'est que lorsqu'on l'execute, et que l'on tape un caractère autre qu'un chiffre, le programme se mettra à partir en boucle Infinit. Donc Il plante.

Quel type de variable doit on utiliser ?
Car un long ou int, fera planter l'application, et l'utilisation d'un char nous fera toujours revenir au case "default" si l'on utilise un chiffre !

Certe ce probleme me paraissait simple, mais je reste tout de même bloqué dessus.

Merci de votre aide