String einlesen
-
Hallo, wie kann ich in C einen string einlesen so das es zu keinem Bufferoverflow kommt wenn man jemand zu viele Werte eingibt.
char var[4]; scanf("%s", var ); printf("%s",var);
In C++ da kann man das ja so machen:
string str;
cin>>str;char str[4];
cin.getline(str,5);
-
scanf("%3s", var);
Wobei du dir bewusst sein solltest, dass diese Lösung dann auch mitten im Wort mit dem Lesen aufhört, falls es länger als 3 Zeichen ist.
CTester schrieb:
char str[4];
cin.getline(str,5);Bämm! Overflow.
-
Doku zu scanf lesen. (Doch, doch, die gibt es
)
char var[4]; scanf("%3s", var ); // 3 damit die '\0' auch noch platz hat.
-
spricht was gegen fgets?
-
h0rst schrieb:
spricht was gegen fgets?
Das '\n'