La version d'Emmanuel vide le buffer clavier après coup.
Ainsi, si tu tapes plus d'un caractère, cela ne gênera pas les saisies suivantes.
Version imprimable
La version d'Emmanuel vide le buffer clavier après coup.
Ainsi, si tu tapes plus d'un caractère, cela ne gênera pas les saisies suivantes.
Donc si je n'utilise qu'un caractère je peux utiliser sans problème celle-ci
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 TraiteEnum Menu(void) { int a; do { gotoxy(1,7); printf("\t\t1. Ajout d'une fiche\n" "\t\t2. Chercher une fiche\n" "\t\t3. Afficher une fiche\n" "\t\t4. Suppression d'une fiche\n" "\t\t5. Quitter\n\n" "\t\tEntrez votre choix : "); fflush(stdout); a = fgetc(stdin) - '0'; } while (a < 1 || a > 5); return a; }
Perdu : Si un singe passe derrière toi, entre 35735 touches puis presse "Entrée", tu ne pourras rien faire pendant un moment...
Merci, j'espere qu'un singe ne passera pas derriere moi :mouarf:
Pourriez vous m'expliquez cette ligne
a = fgetc(stdin) - '0';
je ne comprend pas le - '0'
Merciiiiii
Pour transformer le chiffre '1' (valeur ASCII 49) en valeur 1.
Cela marche pour tout charset basé sur ASCII, et aussi en EBCDIC.
Pas besoin de singe. Pour saisir 1 il faut taper 1<enter>, soit 2 caractères. Il faut donc bien au moins 2 appels à fgetc(), d'où la purge. On ta passé un article qui explique tout ça. Tu ne l'as donc pas lu ?Citation:
Envoyé par IDE
Tu peux continuer de faire le kéké en croyant que ton code est correct, mais ne vient pas te plaindre ensuite qu'il se comporte mal si tu ne suis pas les conseils qui te sont donnés...
C'est pas toi qui a écrit :Citation:
Pourriez vous m'expliquez cette ligne
je ne comprend pas le - '0'Code:a = fgetc(stdin) - '0';
Tu ne sais pas ce que tu écris ?Code:a=((TraiteEnum) getche()) - 48;
48 est le code ASCII de '0'. J'ai simplement généralisé pour rendre le code portable.
Ca marche avec toutes les implémentations du C conformes. C'est requis par la norme pour les caractères représentants les chiffres de 0 à 9.Citation:
Envoyé par Médinoc
Monsieur Delahaye, je ne demande qu'a suivre vos conseils, mais comme je l'ai précisé un peu plus haut dans mon post, je ne suis pas encore arriver aux fichiers donc je n'ai pas vu la foncton fgetc, et je ne veux surtout pas faire le "kéké", je suppose que vous faites de la programmation depuis pas mal d'années, moi je suis DEBUTANT, donc j'essaie de comprendre certaines choses, je pense que pour avancer on doit faire des erreurs :roll: , le "kéké" vous remercie 1000X pour votre aide.
Michael.
mais fgetc lit dans un flux que se soit un fichier ou un clavier ca marche aussi l'ami.