Verifier si bien 1 nbre en C?

[Résolu]
Signaler
Messages postés
144
Date d'inscription
mardi 2 septembre 2003
Statut
Membre
Dernière intervention
18 septembre 2007
-
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
-
Bonjour,

Comment verifier que une personne a bien entré un nombre et non un caractère ?

Merci de votre aide

A Bientot

DOS-chkdsk-2K supprimer.chkdsk@callantdavid.be.tf

5 réponses

Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
comme ca par exmple

#include <stdio.h>

int main()
{
char line[512];
int n;

puts( "Entrez un nombre :" );
while( fgets( line, sizeof line, stdin ) )
{
    if( sscanf( line, "%d", &n ) != 1 )
    {
        puts( "Erreur, ce n'est pas un nombre.\nRecommencez :" );
    }
    else break;
}

printf( "Vous aves entrez : %d\n", n );
}


remarque : si tu entres "4klhlkh", ca afficheras bien
"Vous aves entrez : 4"

mais aucun probleme, la saisie est correcte et le stream reste clean

je pense pas que ce soit necessaire de gerer ce cas d'erreur qui en fait n'en est pas un
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
lit avec fgets et parse avec sscanf, la valeur retour de sscanf te le diras
Messages postés
144
Date d'inscription
mardi 2 septembre 2003
Statut
Membre
Dernière intervention
18 septembre 2007

je ne comprends pas comment tu arrives a faire ca avec sscanf et fgets (je suis newbie donc ne m'en veux pas trop ;) )

je vais encore aller faire des recherches sus google mais pour le moment je n'ai rien trouvé qui pourrait m'aider :'(

DOS-chkdsk-2K
Messages postés
144
Date d'inscription
mardi 2 septembre 2003
Statut
Membre
Dernière intervention
18 septembre 2007

Merci pour l'information .... je vais analyser ton cs ;) et le comprendre ...

DOS-chkdsk-2K
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Sinon tu as isdigit() dans ctype.h

Shell