Heim > Backend-Entwicklung > C++ > Warum liest „cin' nur das erste Wort in C?

Warum liest „cin' nur das erste Wort in C?

Mary-Kate Olsen
Freigeben: 2024-10-30 16:19:03
Original
816 Leute haben es durchsucht

Why Does

„cin“ liest nur das erste Wort in C: Erläuterungen und Lösungen

Im bereitgestellten Codeausschnitt ist der Cin-Stream-Operator Wird verwendet, um Eingaben in das Zeichenarray str einzulesen. Es liest jedoch nur das erste Wort der Eingabe, was zu einem unvollständigen String-Abruf führt.

Warum sich cin so verhält

Standardmäßig liest cin Zeichen der Reihe nach und trennt sie Eingabe basierend auf Leerzeichen (z. B. Leerzeichen, Tabulatoren). Wenn es auf ein Leerzeichen trifft, betrachtet es die Eingabesequenz als abgeschlossen und geht zur nächsten Eingabe über.

Lösung 1: cin.getline() für Char-Arrays

Zu Um eine ganze Eingabezeile zu lesen, können wir anstelle von cin die Funktion cin.getline() verwenden. Es sind zwei Parameter erforderlich: das char-Array, in das gelesen werden soll, und die Größe des Arrays, um sicherzustellen, dass kein Pufferüberlauf auftritt.

<code class="c++">char str[100];
cin.getline(str, sizeof str);</code>
Nach dem Login kopieren

Lösung 2: getline() für std::string

Wenn Sie C 11 oder höher verwenden, können Sie den Typ std::string nutzen und die Funktion getline() verwenden:

<code class="c++">std::string str;
std::getline(cin, str);</code>
Nach dem Login kopieren

Empfehlung für einen modernen Compiler

Es wird dringend empfohlen, von Turbo C 4.5 auf einen moderneren Compiler zu aktualisieren. Visual Studio Express ist eine kostenlose Option für Windows, die verbesserte Sprachunterstützung und Funktionen bietet.

Das obige ist der detaillierte Inhalt vonWarum liest „cin' nur das erste Wort in C?. 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