Contenu | Rechercher | Menus

Annonce

Le forum rencontre en ce moment quelques soucis de charge, il est possible qu'une erreur soit affichée quand vous postez un message, ne rechargez pas la page au risque de poster une seconde fois votre message

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".

#1 Le 21/02/2006, à 16: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, à 21:49

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, à 01: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, à 13:31

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, à 01: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, à 14:06

dRk

Re : [C] vider le buffer stdin.

Merci pr vos réponses.

#6 Le 03/03/2006, à 14:03

Neofungamer

Re : [C] vider le buffer stdin.

fflush(stdin);

pour vider le buffer

#7 Le 03/03/2006, à 15:06

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 ↑