Heim > Backend-Entwicklung > C++ > Hauptteil

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

Barbara Streisand
Freigeben: 2024-10-28 18:07:29
Original
502 Leute haben es durchsucht

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!