Heim > Backend-Entwicklung > C++ > Warum fordert „getline' nach Verwendung des Operators „>>' nicht zur Eingabe auf?

Warum fordert „getline' nach Verwendung des Operators „>>' nicht zur Eingabe auf?

Mary-Kate Olsen
Freigeben: 2024-11-30 11:26:11
Original
652 Leute haben es durchsucht

Why Doesn't `getline` Prompt for Input After Using the `>>` Betreiber?
>` Operator? " />

getline fordert nicht zur Eingabe auf

In diesem Codeausschnitt tritt das Problem auf, wenn getline nach Verwendung des >>-Operators verwendet wird. Wenn >> ; wird zum Lesen von Eingaben verwendet. Auf die Eingabe des Benutzers folgt ein Zeilenumbruchzeichen, das im Eingabepuffer verbleibt. Dieses Verhalten wird problematisch, wenn getline unmittelbar danach aufgerufen wird erwartet, eine Eingabezeile zu lesen, findet aber das Zeilenumbruchzeichen und wird beendet, ohne den Benutzer dazu aufzufordern.

Lösung:

Um dieses Problem zu beheben, gibt es zwei praktikable Lösungen:

  1. Verwenden Sie „Ignorieren“, um das zu konsumieren Newline:
    Rufen Sie „ignore“ auf, um das Newline-Zeichen aus dem Eingabepuffer zu verbrauchen, bevor Sie getline verwenden.

    cin.ignore();
    getline(cin, mystr);
    Nach dem Login kopieren
  2. Getline ausschließlich verwenden:
    Anstatt >> und getline zu mischen, verwenden Sie ausschließlich getline, um alle Eingaben zu lesen. Dieser Ansatz vereinfacht den Code und beseitigt potenzielle Probleme zu Zeilenumbrüchen.

    getline(cin, name);
    getline(cin, i);
    getline(cin, mystr);
    Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum fordert „getline' nach Verwendung des Operators „>>' nicht zur Eingabe auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage