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".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails) *** mise à jour 12/10/2014 ***

#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

Haut de page ↑