[C] probleme utilisation scanf

Fermé
bob - 10 oct. 2009 à 16:53
bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 - 10 oct. 2009 à 18:15
Bonjour,

Je suis un débutant en langage C, et je voulais savoir comment contrôler que la valeur rentrée est bien un chiffre et non un caractère ?
Exemple :
int a;
scanf("%d", &a);
/* ICI contrôle de 'a' : si c'est un chiffre OK, sinon ça fait planter la suite...*/

Merci d'avance !!!

1 réponse

bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 860
10 oct. 2009 à 18:15
Récupère la saisie en tant qu'une chaîne de caractères, et ensuite une petite analyse éventuellement pour vérifier que c'est bien un nombre entier, puis utilise une fonction de conversion "char* vers int" comme par exemple la fonction atoi();

Par exemple : int a = atoi(str);
si str = "123", atoi() retourne 123 dans a.
0