Contrôle saisie sur carte identité

drakouki - 3 déc. 2012 à 16:57
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 - 3 déc. 2012 à 17:21
bonjour , je n'arrive pas a savoir se que je devrais mettre comme controle saisie sur CIN tout en sachant que
1 - si je tape des lettre ça doit me redemander la saisie
2 - ça doit aussi contenir 8 chiffres.
3 - si j'écris 0 au début il faut qu'il s'affiche (sans avoir recours a des chaine de caractère car on va mettre le contenue dans une matrice d'entier )
voila ce que j'ai fait : ( programme en C)

int cin;
do
{printf("saisir votre numero de carte d identite");
scanf("%d",&cin);}
while ((cin<1) || (cin>99999999)) et je bloque ici :(


si quelqu'un pourrais bien m'aider ! MErci d'avance :)

1 réponse

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
3 déc. 2012 à 17:21
Bonjour.

1 - si je tape des lettre ça doit me redemander la saisie

scanf est une fonction qui retourne le nombre d'occurence lues. Si tu indiques une lettre alors que tu cherches à récupérer un nombre, scanf ne va pas réussir à lire d'occurence. C'est comme cela que tu peux déterminer si la lecture à réussi. Voir la doc de scanf sur ton moteur de recherche préféré.

2 - ça doit aussi contenir 8 chiffres.

Tu dis à scanf de lire 8 chiffres d'affilés (voir la doc, ex: scanf("%8d", &cin);)

3 - si j'écris 0 au début il faut qu'il s'affiche

Si tu stockes le nombre lu dans un entier, c'est impossible de savoir s'il y a eu un ou plusieurs 0 devant. En C, 00035, 0035, 035 et 35 valent 35. Ça sera à toi de faire un printf que tu forceras sur 8 chiffres (printf mettra des 0 automatiquement à l'affichage). Voir la doc de printf (quelque chose comme printf("%08d", 35); par exemple).

http://www.cplusplus.com/reference/cstdio/scanf/
http://www.cplusplus.com/reference/cstdio/printf/

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
Rejoignez-nous