bonjour,
comment mettre l'équivalent en C de :
a=getchar();
while(getchar() != '\n');
sans utiliser getchar.
Merci de vos réponses.
bonjour,
comment mettre l'équivalent en C de :
a=getchar();
while(getchar() != '\n');
sans utiliser getchar.
Merci de vos réponses.
Comment veux tu utiliser une fonctionnalité du langage C sans utiliser une de ses fonctions? ça n'a pas de sens!!!
fgetc(stdin)?
Il n'y a pas 36 solutions pour purger le tampon du flux d'entrée standard. Qu'est-ce qui ne te convient pas dans cette solution?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 int a = fgetc(stdin) if (a != '\n' && a != EOF) { int c; while ((c = fgetc(stdin)) != '\n' && c != EOF) { } }
Thierry
On peut aussi faire:
Mais bon, on utilises encore getchar().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 scanf("%*[^\n]"); fgetc(stdin);
Thierry
De toute façon, je ne vois pas où est le problème avec getchar(), il n'y a aucun "pervers" à utiliser cette fonction, elle se comporte très simplement et fais bien ce qu'on lui demande.
scanf avec %c peut également remplacer getchar. En reprenant donc le code de Thierry :
Code : Sélectionner tout - Visualiser dans une fenêtre à part scanf("%*[^\n]%*c");
Si tu ne veux pas de getchar(), tu peux remplacer par la fonction de base fgetc(stdin);
mais on ne sait pas faire plus basique en C standard...
On peut faire plus compliqué, comme
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 char c; scanf("%c", &c);
mais je ne vois pas bien le but de l'opération. Qu'est-ce qui ne va pas avec getchar() ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 char c; fscanf(stdin, "%c", &c);
je pense qu'il faut etre claire dans un point, la fonction getchar est l'un des fonction basique du libC, donc en ne peut pas crér une autre fonction qui traite le même fonctionnement avec le code C. par contre on peut utiliser le language ASM peut être !!!!!!!!!
et ceci, seulement pour capter les evenement materiel catcher par le system..... manipulation des registre je pense....
alors voila !!!!![]()
En tenant compte des remarques de Melem et Emmanuel Delahaye, il suffit donc de faire :
Et on a un getchar personnalisé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #include <stdio.h> char my_getchar(void) { char c; scanf("%c", &c); return c; }![]()
cmoibal, dans ce cas on n'obtient pas un getchar mais plutôt un getch ou un getche ou quelque chose de similaire. En plus pas portable.
Mmm...
La vraie fonction de base est fgetc()
Souvent, on a
dans <stdio.h>, par exemple... mais la version 'fonction' doit aussi exister (c'est obligatoire).
Code : Sélectionner tout - Visualiser dans une fenêtre à part #define getchar() fgetc(stdin)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager