C - Fonction isint?
Résolu
artagon7
Messages postés
423
Statut
Membre
-
artagon7 Messages postés 423 Statut Membre -
artagon7 Messages postés 423 Statut Membre -
Bonjour,
Je voudrais savoir quelle est la fonction a utiliser en C (et non en C++) pour eviter un defilement infini dans ma console lorsque je fais une erreur en entrant une lettre au lieu d'un nombre.
J'ai essaye isint mais ca ne fonctionne pas.
scanf("%d", &choix);
if(isint(choix)) printf("\n\n\n\t\t\t\t C'est bon.");
J'ai inclus les librairies :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Je travaille avec :
$ gcc --version
gcc (GCC) 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)
Copyright (C) 2006 Free Software Foundation, Inc.
Merci
Je voudrais savoir quelle est la fonction a utiliser en C (et non en C++) pour eviter un defilement infini dans ma console lorsque je fais une erreur en entrant une lettre au lieu d'un nombre.
J'ai essaye isint mais ca ne fonctionne pas.
scanf("%d", &choix);
if(isint(choix)) printf("\n\n\n\t\t\t\t C'est bon.");
J'ai inclus les librairies :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Je travaille avec :
$ gcc --version
gcc (GCC) 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)
Copyright (C) 2006 Free Software Foundation, Inc.
Merci
Configuration: Linux Konqueror 3.5
5 réponses
-
essaie
#include<stdio.h> int main () { int choix, fini; fini = 0; choix = 0; while (fini == 0){ printf ("Entre un entier : "); if (scanf ("%d", &choix)) { printf ("\n\n\n\t\t\t\t C'est bon."); fini = 1; }else { getchar (); printf ("\n\n\n\t\t\t\t Ce n'est pas bon. Recommencez."); } } return 0; } -
Salut
Ce que tu peux faire :
int choix; if(scanf("%d",&choix)){ printf("\n\n\n\t\t\t\t C'est bon."); }
Cdt -
Salut,
tu peux faire comme ça#include<stdio.h> int main() { int choix; printf("Entre un entier : "); if (scanf("%d", &choix)) printf("\n\n\n\t\t\t\t C'est bon."); return 0; } -
Salut fiddy et le Perlien ;-)
J'ai essaye votre script et ma console ne capote plus.
J'ai modifie cependant votre script car je dois absolument signaler l'erreur a l'utilisateur mais ca ne fonctionne pas. La console se remet a capoter si j'entre un caractere, sinon c'est OK.
Script modifie
#include<stdio.h>
int main()
{
int choix, fini;
fini=0;
while(fini==0)
{
choix = 0;
printf("Entre un entier : ");
if (scanf("%d", &choix))
{ printf("\n\n\n\t\t\t\t C'est bon.");
fini=1;
}
else
{
printf("\n\n\n\t\t\t\t Ce n'est pas bon. Recommencez.");
}
}
return 0;
}
Elle inscrit sans cesse :
Ce n'est pas bon. Recommencez.Entre un entier :
Ce n'est pas bon. Recommencez.Entre un entier :
Ce n'est pas bon. Recommencez.Entre un entier :
....
On dirait que le programme garde en memoire que choix = "caractere" malgre le fait que je reinitialise la variable choix au debut du while.
Ou est le probleme?
Merci -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Lami20j, ca marche ton truc.
Je me rappelle avoir deja essaye le getchar() comme tampon dans le passe.
Ouais, je suis pas mal rouille...
Merci a vous deux.