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 :
Comment puis-je éviter ce problème SVP ??
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 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();
PS : j'ai pensais utiliser isdigit mais j'ai pas réussi
Merci d'avance.
Partager