Maison >développement back-end >C++ >Pourquoi le « cin » de Turbo C ne lit-il que le premier mot ?
Limitation "cin" de Turbo C : lecture uniquement du premier mot
Dans Turbo C, l'opérateur d'entrée "cin" a un limitation lorsqu’il s’agit de tableaux de caractères. Plus précisément, il ne lit que jusqu'à ce qu'il rencontre un caractère d'espacement (par exemple, un espace ou une nouvelle ligne). Cela peut entraîner un comportement inattendu lorsque vous essayez de lire une saisie de plusieurs mots.
Considérez le code Turbo C suivant :
<code class="c++">#include <iostream.h> class String { char str[100]; public: void input() { cout << "Enter string: "; cin >> str; } void display() { cout << str; } }; int main() { String s; s.input(); s.display(); }</code>
Si vous exécutez ce code et saisissez l'entrée "Steve Hawking, " vous vous attendez à ce que la sortie affiche la chaîne entière. Cependant, en raison de la limitation "cin", seul "Steve" est affiché, car "cin" arrête la lecture au premier caractère d'espacement (espace).
Surmonter la limitation
Pour résoudre cette limitation, vous pouvez utiliser des méthodes alternatives pour lire les tableaux de caractères dans Turbo C :
Recommandation
L'approche recommandée de nos jours consiste à utiliser des compilateurs C modernes et la bibliothèque standard. Cela permet une gestion des entrées plus fiable et plus efficace, y compris la possibilité de lire des lignes entières d'entrée.
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!