C-String
-
hallo
ich hab ein buch von jürgen wolf wo geschrieben steht:
char vname[30];
cin.getline(vname,sizeof(vname));sollte man nicht eher schreiben
cin.getline(vname,sizeof(vname)-1);
da man so eher vor pufferüberlauf geschützt ist. Also wegen der Nullterminierung.
was meint ihr??
mfg
-
Nein, das passt schon. Das liest nur 29 Zeichen und schreibt an letzter Stelle die '\0'. Der Rest bleibt im Eingabepuffer hängen.
Das ist aber C++, ich verschiebe...
-
Dieser Thread wurde von Moderator/in Tim aus dem Forum ANSI C in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
char name[30]; std::cin.getline(name, 30, '\n');Das ist korrekt, da der Parameter von getline nicht, wie bei den C-Standard-Funktionen oftmals, die Länge ohne Nullterminierungszeichen haben will.