Verifier si bien 1 nbre en C?

Résolu
CHKDSK2K Messages postés 144 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 18 septembre 2007 - 21 sept. 2004 à 17:57
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013 - 21 sept. 2004 à 20:06
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

cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
21 sept. 2004 à 19:50
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
3
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
21 sept. 2004 à 18:10
lit avec fgets et parse avec sscanf, la valeur retour de sscanf te le diras
0
CHKDSK2K Messages postés 144 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 18 septembre 2007
21 sept. 2004 à 19:25
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
0
CHKDSK2K Messages postés 144 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 18 septembre 2007
21 sept. 2004 à 19:57
Merci pour l'information .... je vais analyser ton cs ;) et le comprendre ...

DOS-chkdsk-2K
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
21 sept. 2004 à 20:06
Sinon tu as isdigit() dans ctype.h

Shell
0
Rejoignez-nous