Heim >Backend-Entwicklung >C++ >Was ist der Unterschied zwischen „std::cin' und „std::cin.getline()' beim Lesen von Strings in C?

Was ist der Unterschied zwischen „std::cin' und „std::cin.getline()' beim Lesen von Strings in C?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-14 00:09:11385Durchsuche

What's the Difference Between `std::cin` and `std::cin.getline()` for Reading Strings in C  ?

Std::cin.getline() und seine Unterscheidung von std::cin verstehen

std::iostream bietet eine breite Palette von Mechanismen für Ein-/Ausgabeoperationen. Unter anderem dient std::cin als Standardeingabeobjekt und bietet Methoden und Funktionen für den Zugriff auf Zeichendaten. Wenn es jedoch um das Lesen von Zeichenfolgen oder Zeilen geht, wird der Nutzen von std::cin durch die spezialisierte Methode std::cin.getline() übertroffen.

std::cin.getline() : Ein Einblick in seine Funktionalität

std::cin.getline() ist eine für std::cin und ähnliche Objekte einzigartige Methode, die das effiziente Lesen von Zeichen ermöglicht Daten. Sie arbeitet mit zwei Argumenten: einer maximalen Zeichenanzahl und dem Ziel, an dem die gelesenen Daten gespeichert werden.

Diese Methode beendet den Lesevorgang unter drei verschiedenen Bedingungen:

  1. Das Ende von eine Zeile
  2. Erschöpfung der verfügbaren Eingabezeichen
  3. Erreichen der angegebenen maximalen Zeichenzahl limit

Unterscheidung von std::cin von std::cin.getline()

Während std::cin eine bequeme Möglichkeit bietet, einzelne Zeichen zu lesen, Es fehlt die Fähigkeit, zeilenbasierte Eingaben elegant zu verarbeiten. std::cin.getline() füllt diese Lücke, indem es sich auf das Lesen ganzer Zeichenzeilen spezialisiert und so sicherstellt, dass Zeichenfolgen oder Mehrworteingaben genau erfasst werden.

Alternative Eingabeoptionen mit std::cin

Zusätzlich zu std::cin.getline() unterstützt std::cin eine Vielzahl weiterer Eingabemethoden, einschließlich:

  • std::cin >> S; - Liest ein einzelnes Wort in die String-Variable 's'
  • std::cin >> ich; - Liest eine einzelne Zahl in die Ganzzahlvariable 'i'
  • std::getline(std::cin, s); – Liest eine ganze Zeile in die String-Variable „s“ (entspricht std::cin.getline() ohne Zeichenbeschränkung)
  • std::cin.ignore(100); – Überspringt die nächsten 100 Zeichen im Eingabestream

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „std::cin' und „std::cin.getline()' beim Lesen von Strings in C?. 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