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

Pourquoi le « cin » de Turbo C ne lit-il que le premier mot ?

Barbara Streisand
Libérer: 2024-10-28 18:07:29
original
502 Les gens l'ont consulté

Why Does Turbo C  's

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>
Copier après la connexion

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 :

  1. cin.getline(str, sizeof str);
    This La méthode lit une ligne entière d'entrée, y compris les caractères d'espacement, dans le tableau de caractères spécifié.
  2. std::getline(cin, str);
    Si vous avez accès au standard bibliothèque, vous pouvez utiliser cette méthode pour lire une ligne entière dans un objet chaîne, ce qui offre plus de flexibilité.
  3. Implémentez votre propre classe de chaîne :
    Vous pouvez définir votre propre classe de chaîne qui gère les entrées et les sorties plus efficacement.

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!

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!