Comment effacer cin tampon après la lecture de char
J'ai un problème. Tout d'abord j'ai besoin de lire un caractère à partir de la saisie de l'utilisateur après que j'ai besoin de lire en entier. Le problème est que si je entrer plus d'un char sur la première cin, il ne demande pas d'entrer valeur entière.
Voici l'extrait de mon code.
Est-il une fonction pour réinitialiser ou effacer la mémoire de la cin.
Je suis débutant, désolé si la question est stupide. Merci.
int *i = new int;
int *c = new char;
std::cin >> *c;
std::cin >> *i;
- C'est bien d'être un débutant. Cependant, j'ai fortement il est recommandé que vous obtenez un livre. Et oublier
new
, au moins pour un mois.
Vous devez vous connecter pour publier un commentaire.
Vous avez demandé:
Il est
std::istream::ignore()
. Il y a un exemple de code dans le lien qui montre comment utiliser la fonction.Dans votre cas, je vois quelque chose comme:
C'est un de ces très simples à des problèmes que personne ne sait comment le faire correctement, il me semble. La façon la plus efficace façon de le faire est d'appeler ignorer le nombre exact de caractères dans la mémoire tampon d'entrée.
C'est la meilleure réponse pour plusieurs raisons:
Pas maladroit comprend.
Pas de géant nombre de traitement.
Les opérations nécessaires rapprocher de la mémoire tampon d'entrée (
in_avail
vsnumeric_limits
).La cohérence dans le suivi d'opérations d'entrée (ne pas lire au-delà de la "délimiteur (
\n
)", ou de laisser des caractères dans la mémoire tampon).Recommandé par un langage c++ avocat, le Dr Robert Johnson.
in_avail
est mis en œuvre dans de nombreux std bibliothèques, il suffit de retourner0
, qui est apparemment toujours conforme mise en œuvre.Je ne suis pas sûr de savoir pourquoi vous êtes la création de pointeurs ici. Aussi, je ne sais pas comment vous n'êtes pas d'obtenir les erreurs du compilateur pour essayer d'allouer une
char
pour unint*
. Si vous avez besoin de lire dans un int et char à effectuer les opérations suivantes:Comme Zeta recommandé dans les commentaires, on dirait que vous pourriez avoir à faire un peu de lecture sur le C++. Espérons que cette aide.