Comment faire pour vider le tampon de la console?
j'ai un code qui s'exécutent repetedly :
printf("voulez-vous continuer? Y/N: \n");
keepplaying = getchar();
dans la prochaine mon code est en cours d'exécution il n'ya pas d'attente pour l'entrée.
j'ai trouvé que getchar dans le seconed temps utiliser '\n' que le charcter.
im gussing cela est dû à certaines tampon de la sdio, donc il enregistrer la dernière entrée qui était "Y\n" ou "N\n".
mon Q est, comment puis-je vider la mémoire tampon avant d'utiliser le getchar, qui fera getchar attendre ma réponse?
Êtes-vous à l'aide de C ou C++? Ils ne sont pas la même langue.
OriginalL'auteur DoronS | 2011-01-01
Vous devez vous connecter pour publier un commentaire.
De rinçage d'un flux d'entrée provoque un comportement indéterminé.
De bien rincer le flux d'entrée faire quelque chose comme ce qui suit:
Voir Pourquoi fflush(stdin) est mauvais et Vider le tampon d'entrée.
Le moyen le plus facile est d'utiliser fflush qui peut ne pas fonctionner dans tous les contextes et dans toutes les situation.
Vous pouvez utiliser les bibliothèques spécifiques à votre plate-forme pour gérer la saisie de l'utilisateur (WIN32, GTK, ncurses, etc.) ce qui va cacher ce genre d'informations.
OriginalL'auteur Robert Groves
utiliser fflush() et flushall() avant printf
OriginalL'auteur Sudhakar Singh
Autant que je sache,
flushall
n'est pas POSIX. Afin de purger une console de mémoire tampon dans un façon standard, vous pouvez simplement utiliser la commande:Ce sujet semble être un peu vieux, mais j'espère que cela peut toujours aider les autres.
OriginalL'auteur kevin.bui