Heim >Backend-Entwicklung >C++ >Was ist der Hauptunterschied zwischen „std::cin' und „std::cin.getline()' in C?
Die Unterschiede zwischen std::cin.getline() und std::cin verstehen
Beim Arbeiten mit Eingabe und Ausgabe in C , Es ist wichtig, die Nuancen zwischen std::cin.getline() und std::cin zu verstehen. Obwohl beide zum Standard-Eingabeobjekt std::cin gehören, dienen sie unterschiedlichen Zwecken und verarbeiten Eingaben unterschiedlich.
std::cin.getline()
Lassen Sie uns näher darauf eingehen std::cin.getline(). Der Namespace std:: beherbergt die umfangreiche Sammlung von Typen, Funktionen und Objekten der Standardbibliothek. std::cin ist ein solches Objekt, das die Standardzeicheneingabe darstellt. Es bietet Methoden und Funktionen zum Extrahieren von Zeichen aus der Standardeingabe.
std::cin.getline() ist eine Methode von std::cin, die eine Zeichenzeile vom Objekt links davon abruft (hier std ::cin). Es liest weiterhin Zeichen, bis es auf ein Zeilenumbruchzeichen (n) stößt, die maximal angegebene Anzahl von Zeichen erreicht oder keine Eingabe mehr vorhanden ist.
std::cin vs. std::cin.getline( )
Der Hauptunterschied zwischen std::cin und std::cin.getline() liegt in der Art und Weise, wie sie mit Leerzeichen und Zeilenumbrüchen umgehen Zeichen:
Beispielverwendung
Das Verständnis dieser Unterscheidungen ist wichtig, wenn Sie mit Zeichenfolgen und Eingaben arbeiten, die dies möglicherweise tun Leerzeichen oder Zeilenumbrüche enthalten. Zum Beispiel:
string name; int age; // Read a single word from std::cin std::cin >> name; // Suppose John // Read the next line of input std::string line; std::getline(std::cin, line); // Suppose "is 25 years old" // Extract the age from the line age = std::stoi(line.substr(line.find("is") + 3, line.find("years") - 5)); // Extract "25"
In diesem Beispiel verwenden wir std::cin, um ein einzelnes Wort (Name) zu lesen, und verwenden dann std::cin.getline(), um die gesamte folgende Zeile zu lesen. Beachten Sie, dass, wenn wir std::cin zum Lesen der Zeile mit dem Alter verwendet hätten, nur „25“ ohne den umgebenden Text extrahiert worden wäre.
Fazit
Wenn Sie mit Eingaben arbeiten, die Leerzeichen oder Zeilenumbrüche enthalten, ist es unerlässlich, den Unterschied zwischen std::cin.getline() und std::cin zu verstehen. Durch das Verständnis ihrer unterschiedlichen Verhaltensweisen können Entwickler bestimmte Teile der Eingabe effektiv abrufen und potenzielle Unklarheiten bei der Datenverarbeitung vermeiden.
Das obige ist der detaillierte Inhalt vonWas ist der Hauptunterschied zwischen „std::cin' und „std::cin.getline()' in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!