Saisie d'un caractere dans un menu Switch
Bonsoir,
Par le biais d'un switch j'ai crée un menu dans un des cas on doit saisir un caractere, malgrès tout mes efforts j'ai un problème que je n'arrive pas à comprendre.
J'ai besoin de mettre deux scanf pour pouvoir saisir ce caractere sinon le programme continue sans me laisser la possibilité de saisir ce caractere.
Je n'arrive pas à voir d'ou vient le probleme... en temps normal un seul scanf est nécessaire...
Voici le code
Code:
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 41 42 43 44 45 46 47 48
| #include <stdio.h>
#include <string.h>
main(){
char car;
int j,fin=1,choix;
/*Menu principal du programme*/
do{
printf("******************** M E N U - PRINCIPAL ********************\n");
printf("** 1. SAISIR UN NOMBRE ENTIER. **\n");
printf("** 2. SAISIR UN CARACTERE. **\n");
printf("** 3. QUITTER. **\n");
printf("**------------------ Faites votre choix -------------------**\n");
printf("*************************************************************\n");
scanf("%d",&choix);
switch(choix){
case 1 : printf("Saisie d un entier\n");
printf ("Veuillez saisir un entier\n");
scanf("%d",&j);
printf("L entier est : %d\n",j);
break;
case 2 : printf("Saisie d un caractere\n");
printf ("Veuillez saisir un caractere\n");
scanf("%c",&car);
/****** PROBLEME ******/
//Deuxieme scanf necessaire sinon il ne me laisse pas saisir le caractere
scanf("%c",&car);
printf("Le caractere est : %c\n", car);
break;
case 3 : printf("Au revoir\n");
//La valeur de "fin" est bien modifiée ce qui permet de quitter le menu
fin=0;
break;
default: printf("Erreur de saisie-->Choix non valide!\n\a");
} //Fin du switch
} //Fin du do
//Tant que l'on reste dans les choix possible
while(fin!=0);
}// Fin de la main |
Merci d'avance pour votre aide :)