[C] probleme utilisation scanf

bob -  
bizu53 Messages postés 1274 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   861
 
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