Heim >Backend-Entwicklung >C++ >Warum liest „cin' nur das erste Wort der Benutzereingabe?

Warum liest „cin' nur das erste Wort der Benutzereingabe?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-06 01:59:11557Durchsuche

Why Does `cin` Only Read the First Word of User Input?

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!

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