Maison  >  Article  >  développement back-end  >  Pourquoi `getline()` provoque-t-il un retard d'entrée lorsqu'il est utilisé à plusieurs reprises ?

Pourquoi `getline()` provoque-t-il un retard d'entrée lorsqu'il est utilisé à plusieurs reprises ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-11 17:57:03198parcourir

Why Does `getline()` Cause Input Delay When Used Repeatedly?

getline() arrête le délai d'entrée lorsqu'il est invoqué à plusieurs reprises

Lorsque vous travaillez avec la saisie utilisateur, des divergences peuvent survenir entre l'utilisation de getline() plusieurs fois. Ce problème empêche les utilisateurs de saisir une entrée valide, les laissant confus.

Dans le code fourni, getline() est utilisé à côté de l'opérateur >>. Pendant que>> ignore les espaces de début, il ne parvient pas à absorber les caractères « n » de fin. Par conséquent, lorsque getline() est utilisé après >>, il se comporte de manière inattendue.

Pour résoudre ce problème, il est crucial de sélectionner une seule méthode de saisie et de la respecter tout au long du programme. Dans les cas où des chiffres sont impliqués, utilisez uniquement l'opérateur >>. Cependant, lorsque vous traitez des chaînes ou un mélange de types de données, respectez getline() et extrayez les nombres nécessaires des chaînes d'entrée.

Voici un ajustement du code utilisant uniquement getline() :

std::string line;

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!

Déclaration:
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