122 votes

Pourquoi appellerions-nous cin.clear() et cin.ignore() après avoir lu input?

Le tutoriel C++ de Google Code University avait l’habitude d’avoir ce code:

Quelle est la signification de et ? Pourquoi les paramètres et sont-ils nécessaires?

137voto

Jeremiah Willcock Points 14674

Le efface l’indicateur d’erreur activé (afin que les futures opérations d’E/S fonctionnent correctement), puis `` passe au saut de saut de ligne suivant (pour ignorer tout autre élément sur la même ligne que le non-nombre afin qu’il ne provoque pas un autre échec d’analyse). Il ignorera uniquement jusqu’à 10000 caractères, de sorte que le code suppose que l’utilisateur ne mettra pas dans une ligne très longue et non valide.

2voto

Phy Lieng Points 29

utilisez pour effacer toutes les caractères du précédent dans la mémoire tampon et il choisira de s’arrêter lorsqu’il rencontrera '\n’ou en `` premier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X