Tester le type d'une variable....

king_kunu Messages postés 52 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 4 juin 2004 - 3 mai 2004 à 21:57
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 - 3 mai 2004 à 22:49
bonjour...

je debute en C/C++
je demande a l'utiilisateur de saisir un entier via scanff et j'aimerais etre sur k'il saississe bien un entier...
existe t il une fonction me permettant de m'en assurer...

merci...
@+++

8 réponses

Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
3 mai 2004 à 22:02
Tu débutes, mais tu veux faire du C OU du C++ ?
parce que scanf c'est plutôt du C pas DU TOUT du C++

Ma participation à la saturation du net:
http://hylvenir.free.fr
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
3 mai 2004 à 22:04
saisie un chaine (avec gets) puis converti la en entier avec la fonction atoi
0
king_kunu Messages postés 52 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 4 juin 2004
3 mai 2004 à 22:21
toutes mes excuse c en C
je voudrais verrouiller la saisie sur le type entier et mettre un msg d'erreur dans le cas de la saisie d'un caractere par exemple
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
3 mai 2004 à 22:29
ca par exemple ?

#include <stdio.h>
#include <stdlib.h>

main()
{

char s[50];
int n;

puts("entrez un entier :");

fflush(stdout);
gets(s);

if(!(n=atoi(s)) && *s!='0' ) puts("c'est pas un entier");
else
{
printf("vous avez saisie %d\n",n);
}
getchar();
return 0;
}
0

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

Posez votre question
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
3 mai 2004 à 22:29
Alors plutôt fgets (parce qu'il faut jamais utiliser gets )
ensuite un petit atoi ( avec un test du errno peut être je suis pas sûr de ça)

// Ma participation à la saturation du net:
// http://hylvenir.free.fr
0
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
3 mai 2004 à 22:33
et si je tape -0 dans ton exemple ? :)

Ma participation à la saturation du net:
http://hylvenir.free.fr
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
3 mai 2004 à 22:33
ok, c'est par habitude pour la rapidite, et pis le char[50] est securisant
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
3 mai 2004 à 22:49
"et si je tape -0 dans ton exemple ? "

bien vu

#include <stdio.h>
#include <stdlib.h>

main()
{

char s[50];
int n;

puts("entrez un entier :");

fflush(stdout);
fgets(s,sizeof s,stdin);

if( (n=atoi(s)) || *s=='0' || ( *s=='-' && *(s+1)=='0' ) )
{
printf("vous avez saisie %d\n",n);
}
else
{
puts("c'est pas un entier");
}
return 0;
}
0
Rejoignez-nous