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
| /* retourne -1 si EOF. */
int purge_stdin()
{
int c;
/* Lit jusqu'au prochain \n, et s'interrompt si EOF */
while((c=getchar())!=EOF && c!='\n')
{ }
return (c==EOF ? -1 : 0);
}
int get_int(char const * question)
{
int ret;
int nLus;
do
{
/* Affiche la question */
printf("%s", question);
fflush(stdout);
/* 1. Fait le scanf
2. Nettoie et quitte en cas d'erreur */
nLus = scanf("%d", &ret);
if( purge_stdin() < 0)
break;
}
while(nLus != 1); /* Repete tant que scanf() n'a pas retourné 1 */
return ret;
} |
Partager