Votre question

Prob pour verifier une saisie en C

Tags :
  • Numérique
  • Programmation
Dernière réponse : dans Programmation
Anonyme
3 Novembre 2005 19:33:25

salut, jai un tp en C et ja un souci.
Jai une saisie a verifier et ce doit etre obligatoirement numerique.
voila la demande de saisie(jai raccourci un peu jai mis que le necessaire)
  1. printf("RETARD(S): ");
  2. scanf("%c",&machin);//%c pour prendre que le 1er caractère saisi au cas ou il tape plus d'1 car.
  3. verifnum(machin);




et voila la fonction verifnum(). J'utilise la fonction pcq je fais d'autres verifications autre part et jve pas faire copier/coller
  1. void verifnum(char *machin)
  2. {
  3. int retard;
  4. retard=*machin;
  5. while(isdigit(retard)==0)//isdigit() verifie si le caractere tapé est un chiffre
  6. {
  7. flushall();
  8. printf("Erreur, saisissez un nombre:\n");
  9. scanf("%c",&retard);
  10.  
  11. }
  12. }


Quand je teste, jai cette erreur la:
http://img322.imageshack.us/my.php?image=erreur8hr.jpg

Comment resoudre svp ?

Merci d'avance

Autres pages sur : prob verifier saisie

a b L Programmation
3 Novembre 2005 20:34:07

Lance en debug (touche F5), et quand tu aura "unhandled exception" regarde dans la pile de fonction où est-ce que ça plante.
Enlève le flushall() c'est surement lui qui supprime des pointeurs.
Anonyme
3 Novembre 2005 20:50:13

jai enlevé le flushall et ça fait toujours la meme erreur

jai 2 warning
'
  1. warning C4047: 'function' : 'char *' differs in levels of indirection from 'char '

pour quand jappele la fonction verifnum

et
  1. verifnum' : different types for formal and actual parameter 1

au meme moment

comment je peux, je comprends pas trop ?
Contenus similaires
Pas de réponse à votre question ? Demandez !
Anonyme
3 Novembre 2005 20:51:01

jai enlevé le flushall et ça fait toujours la meme erreur

jai 2 warning
'
  1. warning C4047: 'function' : 'char *' differs in levels of indirection from 'char '

pour quand jappele la fonction verifnum

et
  1. verifnum' : different types for formal and actual parameter 1

au meme moment

comment je peux, je comprends pas trop ?
a b L Programmation
4 Novembre 2005 00:17:29

Ok, j'avais pas vu, ta fonction prend en paramètre un char * et tu lui donne un char (machin). Donc:
- soit en paramètre tu mets char tout court
- soit tu passes &machin et pas machin pour avoir le char*

En fait il prend la valeur du char convertit le contenu en pointeur et l'utilise, donc tu utilise un pointeur sur une zone mémoire protégée

Pour le 2eme warning, n'as-tu pas un prototype dans un .h qui n'est pas exactement comme ta fonction (du genre un qui déclare char tout court et l'autre char*)
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS