Heim > Artikel > Backend-Entwicklung > Wie lese ich eine vollständige Zeile von Benutzereingaben mit getline() in C?
In C kann das Lesen einer vollständigen Zeile von Benutzereingaben eine Herausforderung sein. Dieser Artikel befasst sich mit dem Problem des Lesens mehrerer Wörter aus einer Zeile mithilfe der Funktion „cin“.
Wir verfügen über einen vorhandenen Code, der den Benutzer zur Eingabe einer Textzeile auffordert und diese in eine Datei schreibt. Allerdings liest der Code derzeit jeweils nur ein Wort. Um dieses Problem zu beheben, müssen wir die Funktion „getline()“ anstelle von „cin“ verwenden.
Der korrigierte Code sollte so aussehen:
#include <iostream> #include <cstdlib> #include <cstring> #include <fstream> 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; // Changed data type to string cout << "What would you like to write?" << endl; getline(cin, response); // Using getline() now 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; } return 0; }
Die wesentliche Änderung hier ist die Verwendung von „getline(cin, Response)“ anstelle von „cin >> y“. „getline()“ liest eine Textzeile inklusive Leerzeichen und ist somit für unseren Zweck geeignet.
Das obige ist der detaillierte Inhalt vonWie lese ich eine vollständige Zeile von Benutzereingaben mit getline() in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!