C „cin“ liest nur das erste Wort
In C ist der Eingabestream-Operator >> Liest normalerweise ein einzelnes Wort von einer Eingabequelle wie der Tastatur. Dies kann problematisch sein, wenn versucht wird, eine Zeichenfolge zu lesen, die Leerzeichen enthält, da nur das erste Wort erfasst wird. Dieses Problem kann beim Arbeiten mit Zeichenarrays auftreten.
Beachten Sie den folgenden Code:
<code class="c++">#include <iostream.h> #include <conio.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(); return 0; }
Beim Ausführen dieses Codes in Turbo C 4.5 wird nur das erste Wort einer Zeichenfolge angezeigt. Dies liegt daran, dass cin >> str liest nur ein Wort in das Zeichenarray str. Um eine vollständige Eingabezeile, einschließlich Leerzeichen, zu lesen, ist ein alternativer Ansatz erforderlich.
Eine Möglichkeit besteht darin, die Funktion getline() zu verwenden:
<code class="c++">#include <iostream> #include <string> using namespace std; int main() { string s; cout << "Enter string :"; getline(cin, s); cout << s; return 0; }</code>
Dieser Code liest die gesamte Zeile der Eingabe, einschließlich Leerzeichen, in die s-Zeichenfolge. getline() kann auch zum Einlesen in Zeichenarrays verwendet werden:
<code class="c++">#include <iostream.h> #include <conio.h> int main() { char str[100]; cout << "Enter string :"; cin.getline(str, sizeof str); cout << str; return 0; }
Alternativ, wenn Sie lieber die >> Operator können Sie den Code wie folgt ändern:
<code class="c++">#include <iostream.h> #include <conio.h> class String { char str[100]; public: void input() { cout << "Enter string :"; cin.getline(str, sizeof str); } void display() { cout << str; } }; int main() { String s; s.input(); s.display(); return 0; }</code>
Mit diesen Änderungen liest der Code die gesamte Eingabezeichenfolge korrekt und zeigt sie an.
Das obige ist der detaillierte Inhalt vonWie lese ich ganze Eingabezeilen einschließlich Leerzeichen mit „cin' von C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!