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

Warum extrahiert „cin >> str“ nur das erste Wort in C?

Susan Sarandon
Susan SarandonOriginal
2024-10-27 16:47:30844Durchsuche

Why does `cin >> str` nur das erste Wort in C extrahieren? 
> str` nur das erste Wort in C extrahieren? " />

cin extrahiert nur das erste Wort in C

Im bereitgestellten Code extrahiert cin eine Zeichenfolge mit cin >> str; erfasst nur das erste Wort, was zu Problemen bei der Verarbeitung von Eingaben führt, die mehrere Wörter enthalten. Dies liegt an der Art und Weise, wie cin in Turbo C arbeitet und bei >> jeweils ein Wort liest.

Lösung:

Um eine vollständige Zeile anstelle eines einzelnen Wortes in ein Zeichenarray zu extrahieren, ändern Sie die cin-Anweisung wie folgt:

<code class="c++">cin.getline(str, sizeof str);</code>

Alternativ, wenn Sie eine modernere Variante verwenden In der C-Umgebung und beim Arbeiten mit Zeichenfolgen können Sie das char-Array durch std::string ersetzen und getline() verwenden, um die Eingabe wie folgt zu lesen:

<code class="c++">getline(cin, str);</code>

Zusätzliche Überlegungen:

  • Es wird dringend empfohlen, Ihren Compiler zu aktualisieren, da Turbo C 4.5 erheblich veraltet ist und moderne C-Funktionen nicht unterstützt. Aus Gründen der besseren Kompatibilität werden andere moderne Compiler nicht empfohlen.

Das obige ist der detaillierte Inhalt vonWarum extrahiert „cin >> str“ 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