Maison > développement back-end > C++ > Pourquoi `getline()` ignore-t-il l'entrée après la lecture d'un entier ?

Pourquoi `getline()` ignore-t-il l'entrée après la lecture d'un entier ?

Mary-Kate Olsen
Libérer: 2024-12-16 21:06:11
original
226 Les gens l'ont consulté

Why Does `getline()` Skip Input After Reading an Integer?

Problèmes getline() : sauter la nouvelle ligne

Lors de l'utilisation de getline(cin, str) pour récupérer l'entrée de l'utilisateur après avoir lu un entier à l'aide de cin >> numéro, vous pouvez rencontrer un comportement inattendu où l'invite du nom ignore l'entrée de str. Cela se produit parce que getline(cin, str) lit et supprime le caractère de nouvelle ligne laissé par l'entrée entière précédente.

Pour résoudre ce problème, vous pouvez utiliser std::ws avant getline(cin, str) pour ignorer les espaces. , y compris les nouvelles lignes, avant de lire la chaîne. Cela garantit que getline(cin, str) lit correctement l'entrée de l'utilisateur sans sauter l'invite de nom :

int number;
string str;
int accountNumber;

cout << "Enter number:";
cin >> number;
cout << "Enter name:";
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
getline(cin, str);
cout << "Enter account number:";
cin >> accountNumber;
Copier après la connexion

En utilisant cin.ignore, vous contournez efficacement tout espace ou nouvelle ligne restant, permettant à getline(cin, str ) pour capturer le nom de l'utilisateur saisi comme prévu.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal