Tester le type d'une variable entrée dans scanf - C++ - Programmation
Marsh Posté le 16-12-2002 à 20:14:37
en fait j'ai une soluce conne que j'avais utiliser pour savoir si c t unchar ou si c t un chiffre ( int ) il suffit de matter la table ascII
Code :
|
la je te refile une fonction que j'ai utiliser pour faire une rechercher soit a partir d'un numero ou d'un nom sans avoir pour autant a aller dans un sous menu different.
donc le teste ki t'interresse c ca :
Code :
|
dans la table ascII les chiffre 0 a 9 sont stocker entre "48" et "57" le reste c des char ou caracteres speciaux/non affichable donc te suffit de faire ca et tu c si c un nombre et la tu fais apparaitre ho gamin fallais foutre un chiffre lol
bon si tu t'en sors pas fais signe je t'aiderai
PS: c la premiere fois que je post ici alors si je suis pas tres clair desolé et si kkun a mieux ba faite signe ca m'interresse aussi lol
Marsh Posté le 17-12-2002 à 00:08:50
Vanik a écrit : Bonjour tout l'monde, |
il faut que tu comprennes que ce ne sera jamais le cas.
ce ne sera que l'interprétation que TU feras des entrées clavier.... si tu veux vérifier qu'il entre pas de caracteres, il faut que tu recoive une chaine de caracteres et que tu l'analyse.
Marsh Posté le 17-12-2002 à 02:37:49
Merci à vous pour vos reponses. merci pr les codes. j'avais pensé effectivement à la correspondance par la table ascii mais malheureusement le prof a mis un getback en disant que ca n'etait pas portable (pour les ibm ou je c plus trop quoi...).
Conclusion de l'histoire, il faut utiliser la fonction isdigit qui est conforme à la norme ansi. (#include <ctype.h> )
Merci pr votre aide.
@ ++
Marsh Posté le 17-12-2002 à 18:09:16
la fonction scanf doit retourné 0 si valeur ne correspond pas au type souhaité
if(scanf == 0)
{
/* erreur */
}
Marsh Posté le 17-12-2002 à 20:52:38
qxn pq tu caste
Code :
|
tu peux laisser en char je pense pr faire la comaparaison
Marsh Posté le 14-12-2002 à 03:56:51
Bonjour tout l'monde,
je debute donc et g un petit souci.
dans un bout de code je dois mettre un scanf("%d", &variable) (avec variable etant un int) mais si l'utilisateur entre un caractere ca fait tout rater... je voudrais pouvoir tester le type, ie verifier qu'il s'agit bien d'un int, pas d'un char ou d'une chaine de caractere...
y'a-t-il une fonction qui pourrait faire ca s'il vous plait?
je pensais à utiliser scanf("%s", variable) avec variable etant un char *... puis faire atoi(variable) mais je ne suis pas du tout sur de moi et j'aimerais faire qqc de bien. utiliser une autre fonction que scanf?
g vu ds le man que scanf renvoie 0 ds le cas précis où on entre un char alors que le programme attend un int. j'ai donc essayé de faire un test du genre :
mais ca ne marche pas, ca boucle sans arret sans attendre que je saisisse une nouvelle fois au clavier... j'ai essayé d'autres feintes, mais sans succes.
help me pleeease ca doit etre tout simple en plus ca
merciii