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
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 :
Cdt
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
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
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