Maison  >  Article  >  développement back-end  >  Pourquoi le « cin » de Turbo C ne lit-il que le premier mot ?

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

Barbara Streisand
Barbara Streisandoriginal
2024-10-28 18:07:29503parcourir

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>

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!

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