Comment effacer le tampon cin en C++ ?
Réponses
Trop de publicités?Je préfère :
cin.clear();
fflush(stdin);
Il y a un exemple où cin.ignore n'est pas suffisant, mais je n'y pense pas pour le moment. C'était il y a un certain temps quand j'ai eu besoin de l'utiliser (avec Mingw).
Cependant, fflush(stdin) est un comportement non défini selon la norme. fflush() est seulement destiné aux flux de sortie. fflush(stdin) ne semble fonctionner comme prévu que sous Windows (avec les compilateurs GCC et MS au moins). comme une extension de la norme C .
Donc, si vous l'utilisez, votre code ne sera pas portable.
Voir Utilisation de fflush(stdin) .
Voir aussi http://ubuntuforums.org/showpost.php?s=9129c7bd6e5c8fd67eb332126b59b54c&p=452568&postcount=1 pour une alternative.