Ich bin neu in der Programmierung, und ich habe einige Fragen zu get()
und getline()
Funktionen in C++.Unterschied zwischen cin.get() und cin.getline()
Mein Verständnis für die beiden Funktionen:
Die getline()
Funktion liest eine ganze Zeile, und das Newline-Zeichen durch die Enter-Taste übertragen mit dem Ende der Eingabe zu markieren. Die get()
-Funktion ist ähnlich wie getline()
, aber anstatt das Zeilenumbruchzeichen zu lesen und zu verwerfen, lässt get()
dieses Zeichen in der Eingabewarteschlange.
Das Buch (C++ Primer Plus), das ich lese, schlägt vor, get()
über getline()
zu verwenden. Meine Verwirrung ist, dass es nicht getline()
sicherer als get()
ist, da es sicher ist, Linie mit '\n'
zu beenden. Auf der anderen Seite wird get()
hängt nur das Zeichen in der Eingabewarteschlange, wodurch möglicherweise ein Problem?
Vielen Dank für Ihre Antwort, ich habe eine andere Frage in Bezug auf diese Angelegenheit. Was ist, wenn die Eingabezeichen die Zeichenbegrenzung für diese beiden Funktionen überschreiten, welche Art von Fehlern würde es möglicherweise verursachen? –
@YuZhou Die maximale Anzahl von Zeichen, die vom Benutzer eingegeben werden können, ist 'std :: numeric_limits :: max()'. Wenn der Puffer des Streams nicht mehr genügend Speicher hat, wird das Fehler-Flag 'std :: ios_base :: badbit' gesetzt. –
0x499602D2