ARRGH!
scanf ist aber genauso gef=E4hrlich! - Wenn nicht noch schlimmer!
Wenn es denn halbwegs sicher sein soll:
fgets
Sowohl scanf als auch gets leiden an der Tatsache, da=DF der einzulesende
"String" l=E4nger als das array sein kann:
rudiment=E4res Beispiel (nur C nicht C++):
=09
Definition des Feldes:
char mystring[ 10]; /* malloc w=E4re sch=F6ner btw. */
=2E..
Eingabe "String" etwas l=E4nger:
1234567890123456
gets( mystring) bzw. scanf("%s", mystring) schreiben nun lustig in mystri=
ng[11],=20
mystring[12], mystring[13] usw. genauers gesagt: sie f=FCllen den Speiche=
r bis zur
Addresse mystring + 16 (NULL Terminierung nicht vergessen!)
Das Problem mit scanf haben K&R schon in ihrer 1978er Ausgabe erw=E4hnt..=
=2E=20
(Grins! - Die liegt immer noch griffbereit in der N=E4he des Schreibtisch=
s, es
geht doch nichts =FCber die Klassiker...)
(BTW "mystring" und nicht "&mystring" wenn es um "char *" geht ...)
fgets ist aber "sicher":
fgets( mystring, 10, stdin) f=FCllt maximal 10 chars auf (maximal 9 mit =
Inhalt
und der letzte mit '\0')
Ansonsten: man fgets
Happy hacking
=09Stephan
-- Dr. Stephan Melin EMail: stephan.melin@neuss.netsurf.de