Mit Cin eine ganze Zeile vom Benutzer lesen
In Ihrem bereitgestellten C-Code möchten Sie eine Textzeile in eine Datei schreiben , aber es tritt ein Problem auf, bei dem nur ein Wort statt der gesamten Zeile geschrieben wird. Die Lösung liegt in der Handhabung von Benutzereingaben durch den Code.
Der Code verwendet cin >> y, um ein Zeichen vom Benutzer zu lesen, wobei jedoch nur das erste eingegebene Zeichen erfasst wird. Um eine ganze Zeile zu lesen, ist ein anderer Ansatz erforderlich.
Anstelle von cin >> y, verwenden Sie den folgenden Code:
string response; getline(cin, response);
Diese Zeile verwendet getline, um eine ganze Textzeile vom Benutzer zu lesen. Der eingegebene Text wird in der String-Variablen-Antwort gespeichert.
So integrieren Sie diese Änderung in Ihren Code:
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); ofstream file; file.open("Characters.txt"); file << strlen(response.c_str()) << " Characters." << endl; file << endl; file << response; // Now writes the entire line file.close(); cout << "Done. \a" << endl; } else { cout << "K, Bye." << endl; }
Indem Sie getline zum Lesen der gesamten Zeile verwenden, können Sie dies jetzt effektiv tun Schreiben Sie Antworten aus mehreren Wörtern in Ihre Datei.
Das obige ist der detaillierte Inhalt vonWie liest man in C eine ganze Textzeile vom Benutzer vor?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!