Contenu | Rechercher | Menus

Annonce

Ubuntu-fr.org recrute toujours de nouveaux modérateurs, avec de l'expérience.

Ubuntu 16.04 LTS
Réservez vos DVD et clé USB Ubuntu-fr (premières livraisons mi-mai)

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

M.A.J. en cours du forum possibilité de bug, nous faisons le maximum pour les résoudre au plus vite

#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

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, à 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

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, à 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

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