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

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-30 16:19:03723Durchsuche

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>

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>

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!

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