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 : 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
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