Tom's Guide > Forum > Programmation > Prob pour verifier une saisie en C

Prob pour verifier une saisie en C

Forum Programmation : Prob pour verifier une saisie en C

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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)

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

Code :
  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. }



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

Comment resoudre svp ?

Merci d'avance

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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.

Répondre à CRicky

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

jai 2 warning
'

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


pour quand jappele la fonction verifnum

et

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


au meme moment

comment je peux, je comprends pas trop ?

Répondre à Ludo95000

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

jai 2 warning
'

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


pour quand jappele la fonction verifnum

et

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


au meme moment

comment je peux, je comprends pas trop ?

Répondre à Ludo95000

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*)

Répondre à CRicky
Tom's Guide > Forum > Programmation > Prob pour verifier une saisie en C
Aller à :

Il y a 2541 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens