Citation
Morgan
Fais une recherche sur ce forum, sve@r avait
proposé une macro pour reproduire le comportement
de fflush(stdin) .
__________________________________________________
_
L'interface chaise-clavier se débuggue elle
aussi...
Merci de me citer...
J'avais en effet proposé une macro pas du tout portable pour vider le tampon "stdin" (et accessoirement pour vider n'importe quel tampon).
La macro est la suivante:
#define FFLUSH(flux) ((flux)->_IO_read_ptr=NULL,\
(flux)->_IO_read_end=NULL,\
(flux)->_IO_read_base=NULL,\
(flux)->_IO_write_ptr=NULL,\
(flux)->_IO_write_end=NULL,\
(flux)->_IO_write_base=NULL)
Mais depuis, j'ai appris des trucs
1) sous Linux, il existe la fonction "fpurge(flux)" ou "_fpurge(flux)" qui vide le flux sans le traiter (idéal pour vider "stdin")
2) en fait, quand c'est vraiment bien programmé, on n'a jamais besoin de vider "stdin" comme un "ouf" parce que, quand c'est bien programmé, on sait en permanence ce que contient "stdin" et on peut toujours effacer (avec des "getchar()") ce qu'il y a en trop
Poste le Friday 1 April 2005 21:41:16