salut est ce quue je peut utiliser fflush(stdin) pour vider le flux d'entrée standard (lorsqu'un scanf a foiré ) ?Est il vrai que ça peut causer des comportements indeterminés ?
merci
Version imprimable
salut est ce quue je peut utiliser fflush(stdin) pour vider le flux d'entrée standard (lorsqu'un scanf a foiré ) ?Est il vrai que ça peut causer des comportements indeterminés ?
merci
En effet, ça cause des comportements indéterminés.
Utilise ceci pour vider une ligne d'un flux d'entrée:
Je n'ai pas testé, aussi je peux m'être gouré, mais normalement c'est ça: On lit des caractères juqu'à tomber sur \n ou EOF.Code:
1
2
3
4
5
6 void PurgeStream(FILE *in) { int c; while((c=fgetc(in)) != '\n' && c!=EOF) {} }
tu peut m'expliquer un peut plus stp ?:P
Salut,
La fonction de Médinoc lit les caractères présent sur le flux passé à la fonction PurgeStream (stdin si tu veux purger l'entrée standard) jusqu'à ce qu'elle rencontre le caractère de fin de ligne ('\n') ou le caractère de fin de fichier (EOF). Le corps de la boucle while étant vide, les caractères lus sont ignorés.
Thierry
Bonjour,
:faq:Citation:
Envoyé par isoman
Comment vider le buffer clavier ?
Pourquoi ne faut-il pas utiliser fflush(stdin) pour vider le buffer clavier ?