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!!!
"The quieter you become, the more you are able to hear"
"Plus vous êtes silencieux, plus vous êtes capable d'entendre"
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
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
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
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
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.
"The quieter you become, the more you are able to hear"
"Plus vous êtes silencieux, plus vous êtes capable d'entendre"
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);
Pas de Wi-Fi à la maison : CPL
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 !!!!
"La créativité est faites d'attention et de respect pour les petits faits de la vie."
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)
Pas de Wi-Fi à la maison : CPL
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
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