Maison > développement back-end > C++ > Pourquoi le mélange des opérateurs `getline` et `>>` provoque-t-il une omission d'entrée en C ?

Pourquoi le mélange des opérateurs `getline` et `>>` provoque-t-il une omission d'entrée en C ?

DDD
Libérer: 2024-11-29 15:13:10
original
891 Les gens l'ont consulté

Why Does Mixing `getline` and `>>` Les opérateurs provoquent une omission de saisie en C ?
` Les opérateurs provoquent une omission d'entrée en C ? " />

Le mélange de getline et Operator>> provoque une omission de saisie

Ce code rencontre un problème lors de la tentative de récupération de la saisie de l'utilisateur pour le prix de la veste à l'aide de getline. Malgré invitant l'utilisateur, l'entrée n'est pas collectée et la valeur initiale de "0" est utilisée à la place.

Le problème sous-jacent réside dans le mélange d'utilisation de l'opérateur >> et de la ligne getline. Lors de l'utilisation de l'opérateur>>, les données de l'utilisateur sont saisies, suivies de la touche Entrée, qui insère un caractère de nouvelle ligne dans le tampon d'entrée. délimité, ce qui signifie que le caractère de nouvelle ligne n'est pas affecté à la variable et reste dans le tampon.

Par la suite, lorsque getline est appelé, il est immédiatement trouve le caractère de nouvelle ligne dans le tampon, remplissant son critère de recherche, sans demander de saisie à l'utilisateur.

Solutions

Pour résoudre ce problème, envisagez les options suivantes :

  1. Utilisez ignorer ou un appel factice pour getline : ignorez l'appel ou effectuez un appel factice getline pour éliminez le caractère de nouvelle ligne du tampon après avoir utilisé l'opérateur>>.
  2. Utilisez exclusivement getline : éliminez l'opérateur>> et comptez uniquement sur getline. Ensuite, convertissez vos chaînes dans les types de données souhaités à l'aide de fonctions telles que stoi ou stod pour les entiers et les doubles, respectivement. Cette approche améliore la stabilité et la robustesse du code.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal