Maison > développement back-end > C++ > le corps du texte

Pourquoi \'cin\' ne lit-il que le premier mot en C ?

Mary-Kate Olsen
Libérer: 2024-10-30 16:19:03
original
783 Les gens l'ont consulté

Why Does

"cin" ne lit que le premier mot en C : clarifications et solutions

Dans l'extrait de code fourni, l'opérateur de flux cin est utilisé pour lire l'entrée dans le tableau de caractères str. Cependant, il ne lit que le premier mot de l'entrée, ce qui entraîne une récupération de chaîne incomplète.

Pourquoi cin se comporte de cette façon

Par défaut, cin lit les caractères séquentiellement et délimite saisie basée sur des caractères d'espacement (par exemple, des espaces, des tabulations). Lorsqu'il rencontre un caractère d'espacement, il considère que la séquence d'entrée est terminée et passe à l'entrée suivante.

Solution 1 : cin.getline() pour les tableaux de caractères

Pour lisez une ligne entière d’entrée, nous pouvons utiliser la fonction cin.getline() au lieu de cin. Il faut deux paramètres : le tableau de caractères à lire et la taille du tableau pour garantir qu'un débordement de tampon ne se produise pas.

<code class="c++">char str[100];
cin.getline(str, sizeof str);</code>
Copier après la connexion

Solution 2 : getline() pour std::string

Si vous utilisez C 11 ou une version ultérieure, vous pouvez exploiter le type std::string et utiliser la fonction getline() :

<code class="c++">std::string str;
std::getline(cin, str);</code>
Copier après la connexion

Recommandation du compilateur moderne

Il est fortement recommandé de passer de Turbo C 4.5 à un compilateur plus moderne. Visual Studio Express est une option gratuite pour Windows qui offre une prise en charge linguistique et des fonctionnalités améliorées.

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