Heim >Backend-Entwicklung >C++ >„std::cin vs. std::cin.getline(): Wann sollte jedes für C-Eingaben verwendet werden?'

„std::cin vs. std::cin.getline(): Wann sollte jedes für C-Eingaben verwendet werden?'

Susan Sarandon
Susan SarandonOriginal
2024-12-01 06:23:11349Durchsuche

`std::cin vs. std::cin.getline(): When to Use Each for C   Input?`

Die Unterschiede zwischen std::cin.getline() und std::cin

Bei der Arbeit mit Eingabe und Ausgabe in C ist es so Es ist wichtig, die Unterschiede zwischen std::cin und std::cin.getline() zu verstehen. Funktionen.

std::cin: Eingabe für einzelne Wörter und Zahlen

std::cin ist ein Eingabestream, der zum Lesen eines einzelnen Wortes oder einer einzelnen Zahl verwendet werden kann vom Standardeingabegerät (normalerweise die Tastatur).

std::cin.getline(): Eingabe für Entire Zeilen

Im Gegensatz dazu ist std::cin.getline() eine Methode, mit der eine ganze Zeile von Zeichen aus dem Eingabestream gelesen werden kann. Dazu gehören alle Leerzeichen, Satzzeichen oder Zeilenumbrüche bis zum Ende der Zeile (dargestellt als „n“).

Hauptunterschiede:

  1. Zeichenbeschränkung: std::cin liest nur ein einzelnes Wort oder eine einzelne Zahl, während std::cin.getline() mehrere Zeichen lesen kann. einschließlich einer ganzen Zeile.
  2. Newline-Zeichen: std::cin stoppt das Lesen beim ersten Newline-Zeichen, während std::cin.getline() das Newline-Zeichen in die Zeichenfolge einschließt.
  3. Buffer: std::cin arbeitet mit einem Puffer, sodass alle vor dem Aufruf eingegebenen Zeichen gespeichert werden. std::cin.getline() liest jedoch direkt aus dem Eingabestream und ignoriert alle vorgespeicherten Zeichen.

Verwendungsbeispiele:

// Read a single word from the input
std::string word;
std::cin >> word;

// Read an entire line from the input
std::string line;
std::getline(std::cin, line);

Fazit:

Je nach Szenario entweder std::cin oder std::cin.getline() kann angemessen sein. Wenn Sie ein einzelnes Wort oder eine einzelne Zahl lesen müssen, ist std::cin effizienter. Wenn Sie jedoch eine ganze Eingabezeile, einschließlich Leerzeichen und Zeilenumbrüche, erfassen müssen, ist std::cin.getline() die bevorzugte Wahl.

Das obige ist der detaillierte Inhalt von„std::cin vs. std::cin.getline(): Wann sollte jedes für C-Eingaben verwendet werden?'. 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