Vollständige Zeilen des Benutzers mit cin lesen
Beim Versuch, eine vollständige Zeile der Benutzereingabe mit cin zu lesen stoßen Entwickler häufig auf das Problem, dass nur das erste Wort erfasst wird. Um dieses Problem zu lösen, ist es wichtig, die richtige Methode zur Zeilenextraktion zu verwenden.
Im angegebenen C-Code haben Sie cin >> y; um Benutzereingaben zu sammeln. Dieser Ansatz liest jedoch nur bis zum ersten Leerzeichen, was dazu führt, dass nur ein einziges Wort erfasst wird.
Um eine ganze Eingabezeile effektiv zu lesen, wechseln Sie zur Verwendung von getline(cin, Response) ;. Hier ist eine aktualisierte Version Ihres Codes:
#include <iostream> #include <string> using namespace std; int main() { char x; cout << "Would you like to write to a file?" << endl; cin >> x; if (x == 'y' || x == 'Y') { string response; cout << "What would you like to write." << endl; getline(cin, response); // Use getline instead of cin >> ofstream file; file.open("Characters.txt"); file << strlen(response) << " Characters." << endl; file << endl; file << response; file.close(); cout << "Done. \a" << endl; } else { cout << "K, Bye." << endl; } }
Durch die Verwendung von getline können Sie jetzt effektiv ganze Eingabezeilen erfassen und so das Problem lösen, nur einzelne Wörter zu lesen.
Das obige ist der detaillierte Inhalt vonWarum liest „cin' nur das erste Wort der Benutzereingabe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!