Bonjour,
j'ai un soucis avec une portion de code et je n'arrive pas a en trouver l'origine.

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
 
int saisie;
int test=1;
 while (test)
{ 
printf("Saisissez un entier entre 1 et 3\n");
scanf("%d",&saisie);
 
 if (saisie<1 || saisie>3)
{
printf("votre saisie n'est pas conforme, recommencez");
test=1;
}
else
{
test=0;
} 
}
cette portion de code fonctionne normalement si la saisie utilisateur est bien un entier, mais si l'utilisateur saisie une lettre le programme boucle sans redonner la main a l'utilisateur pour saisir une nouvelle entrée. C'est comme si le programme s'auto-alimentait ??

j'ai bien essayer en rajoutant fflush(stdin); avant le scanf mais cela ne change rien.

je précise qu'a la compilation gcc -Wall je n'ai aucune alerte.
une ame charitable pourrait elle m'expliquer ce qui ce passe.