Tri des caractere entrer par l'utilisateur
yves_boris
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
urgent
Bonjour,
j'ai ecrit un programme de calculatrice en c mais je n'arrive pas a trouver la fonction qui ne permet qu'a lutilisateur d'entrer uniquement des nombres, car une fois que je rentre un un caractere diff de 0 à 9 le programme se plante.pardonner aider moi c'est tres urgent
Bonjour,
j'ai ecrit un programme de calculatrice en c mais je n'arrive pas a trouver la fonction qui ne permet qu'a lutilisateur d'entrer uniquement des nombres, car une fois que je rentre un un caractere diff de 0 à 9 le programme se plante.pardonner aider moi c'est tres urgent
1 réponse
-
On ne peut pas contrôler l'utilisateur, si il veut entrer "bonjour" quand on lui demande un nombre, on ne peut pas l'en empêcher...
Par contre, à toi de filtrer la chaîne de caractères en retour pour vérifier que c'est un nombre, et lui demander d'entrer à nouveau la chaîne si elle n'était pas bonne.
Dans ton cas particulier où tu attends un entier, tu peux utiliser strtol :
long int lireNombre(const char* texte) { char nptr[BUFSIZ], *endptr; long int res; do { printf("%s",texte); scanf("%s",nptr); res = strtol(nptr,&endptr,0); } while (endptr[0] != '\0'); return res; } int main() { int i; for (i=0; i<5; i++) { long int n = lireNombre("Entrez un nombre : "); printf("Le nombre est : %ld\n\n",n); } return 0; }