Maison >développement back-end >C++ >Pourquoi `cin >> str` extrait-il uniquement le premier mot en C ?

Pourquoi `cin >> str` extrait-il uniquement le premier mot en C ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-27 16:47:30949parcourir

Why does `cin >> str` extraire uniquement le premier mot en C ? 
str` extraire uniquement le premier mot en C ? " />

cin extrait uniquement le premier mot en C

Dans le code fourni, extraction par cin d'une chaîne en utilisant cin >> str; capture uniquement le premier mot, ce qui provoque des problèmes lors du traitement d'une entrée contenant plusieurs mots. Cela est dû à la façon dont cin fonctionne dans Turbo C, lisant un mot à la fois lors de la rencontre avec >>.

Solution :

Pour extraire une ligne complète dans un tableau de caractères au lieu d'un seul mot, modifiez l'instruction cin en :

<code class="c++">cin.getline(str, sizeof str);</code>

Alternativement, si vous utilisez un langage plus moderne Environnement C et en travaillant avec des chaînes, vous pouvez remplacer le tableau char par std::string et utiliser getline() pour lire l'entrée comme suit :

<code class="c++">getline(cin, str);</code>

Considérations supplémentaires :

  • Il est fortement recommandé de mettre à jour votre compilateur, car Turbo C 4.5 est considérablement obsolète et ne prend pas en charge les fonctionnalités C modernes de Visual Studio Express ou d'autres compilateurs modernes sont suggérés pour une meilleure compatibilité.

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