Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#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

Haut de page ↑