Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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. smile

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