Maison >développement back-end >C++ >Pourquoi `cin >> str` extrait-il 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 :
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!