Pages : 1
#1 Le 21/02/2006, à 15:51
- dRk
[C] vider le buffer stdin.
Voila comment je m'y prends:
#define CLEAR_STDIN { int c; while((c = getchar()) && (c != '\n')); }
Le probleme c'est que quand stdin est vide, le programme attend qqch (getchar()), comment on peut éviter cela. Est-il possible de tester si stdin est vide?
#2 Le 21/02/2006, à 20:49
- Renorems
Re : [C] vider le buffer stdin.
Salut,
Renseigne toi sur le fonction flush si mes souvenirs sont bons ça pourra ptet t'aider.
Hors ligne
#3 Le 22/02/2006, à 00:16
- dRk
Re : [C] vider le buffer stdin.
Merci, mais je crois qu'on ne peut pas l'utiliser sur les flux d'entrée. J'ai vu un peu partout que fflush(stdin) est a banir.
#4 Le 22/02/2006, à 12:31
- gene69
Re : [C] vider le buffer stdin.
moi aussi je deteste les ES en C.
n'utilise pas fflush ... Par contre tu peux faire la methode proposee par la faq developpez.com
qui consiste à faire la même chose que toi MAIS on teste en plus si on a attent le caractere de fin de fichier
#include <stdio.h>
int c;
while ((c = getchar()) != '\n' && c != EOF); /* mange le tampon */
Dernière modification par gene69 (Le 27/02/2006, à 00:59)
Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion
Hors ligne
#5 Le 22/02/2006, à 13:06
- dRk
Re : [C] vider le buffer stdin.
Merci pr vos réponses.
#6 Le 03/03/2006, à 13:03
- Neofungamer
Re : [C] vider le buffer stdin.
fflush(stdin);
pour vider le buffer
#7 Le 03/03/2006, à 14:06
- max63
Re : [C] vider le buffer stdin.
Si mes souvenir en C sont encore bon je crois que la fonction flush est a éviter, il y a d'ailleur un warning lors de son utilisation sur des compilateurs style gcc.
Tout sur l'actualité frakassante du libre : http://www.frakass.org
Hors ligne
Pages : 1