1 pièce(s) jointe(s)
Mon programme ne s’arrête pas sur un scanf dans une boucle while
Bonjour.
Dans un petit programme, j'ai une fonction qui me permet de saisir des données dans un tableau.
Une de ces donnée est une date donc un int.
Au niveau de la saisi de la date, je voulais une vérification sur le fait que l'utilisateur saisi bien un int.
Je fais cette verif avec un if dans un While (voir le code).
Lorsque on saisi un int, pas de problème, le programme continu comme il faut.
Si on saisi autre chose qu'un int, la valeur saisi retourne "0".
Mais sur ma console, j'ai le résultat :
Pièce jointe 321191
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
| int cont=0; printf("ID : ");
scanf("%s%*[^\n]", tbl[index].id);
getchar();
printf("Titre : ");
scanf("%s%*[^\n]", tbl[index].titre);
getchar();
printf("annee : ");
scanf("%d", &tbl[index].annee);
getchar();
while (cont==0) {
if (tbl[index].annee==0) {
printf("Veuillez saisir une annee en chiffres !!\nannee : ");
scanf("%d", &tbl[index].annee);
getchar();
cont=0;
}
cont=1;
}
printf("Prenom : ");
scanf("%s%*[^\n]", tbl[index].chanteur.prenom);
getchar();
printf("Nom : ");
scanf("%s%*[^\n]", tbl[index].chanteur.nom);
getchar(); |
Comment puis-je éviter ce problème SVP ??
PS : j'ai pensais utiliser isdigit mais j'ai pas réussi :oops:
Merci d'avance.