Heim  >  Artikel  >  Backend-Entwicklung  >  Warum liest „cin“ von Turbo C nur das erste Wort?

Warum liest „cin“ von Turbo C nur das erste Wort?

Barbara Streisand
Barbara StreisandOriginal
2024-10-28 18:07:29503Durchsuche

Why Does Turbo C  's

Die „cin“-Einschränkung von Turbo C: Nur das erste Wort lesen

In Turbo C hat der „cin“-Eingabeoperator eine Einschränkung beim Umgang mit Zeichen-Arrays. Insbesondere liest es nur so lange, bis es auf ein Leerzeichen (z. B. Leerzeichen oder Zeilenumbruch) stößt. Dies kann zu unerwartetem Verhalten führen, wenn Sie versuchen, Eingaben mit mehreren Wörtern zu lesen.

Bedenken Sie den folgenden Turbo-C-Code:

<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>

Wenn Sie diesen Code ausführen und die Eingabe „Steve Hawking, „Man würde erwarten, dass die Ausgabe die gesamte Zeichenfolge anzeigt. Aufgrund der „cin“-Einschränkung wird jedoch nur „Steve“ angezeigt, da „cin“ beim ersten Leerzeichen (Leerzeichen) aufhört zu lesen.

Überwindung der Einschränkung

Um diese Einschränkung zu beheben, können Sie alternative Methoden zum Lesen von Zeichenarrays in Turbo C verwenden:

  1. cin.getline(str, sizeof str);
    This Die Methode liest eine ganze Eingabezeile, einschließlich Leerzeichen, in das angegebene char-Array.
  2. std::getline(cin, str);
    Wenn Sie Zugriff auf den Standard haben In der Bibliothek können Sie mit dieser Methode eine ganze Zeile in ein String-Objekt einlesen, was mehr Flexibilität bietet.
  3. Implementieren Sie Ihre eigene String-Klasse:
    Sie können Ihre eigene String-Klasse definieren Dadurch werden Eingabe und Ausgabe effizienter verarbeitet.

Empfehlung

Der heutzutage empfohlene Ansatz ist die Verwendung moderner C-Compiler und der Standardbibliothek. Dies sorgt für eine zuverlässigere und effizientere Eingabeverarbeitung, einschließlich der Möglichkeit, ganze Eingabezeilen zu lesen.

Das obige ist der detaillierte Inhalt vonWarum liest „cin“ von Turbo C nur das erste Wort?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn