text einlesen in c++
moidaschl 12.12.2002 - 16:26 2371 47
M.I.P.S.
Big d00d
|
int scanf(const char *format, [Argumente]) verlangt als Argument einen Pointer auf eine Variable. Wenn du eine Variable übergibst, wandelt er den Inhalt der Variable in eine Speicheradresse um und speicher den eingelesenen Wert an der entsprechenden Stelle. Wenn du einen Array (Pointer) in scanf verwendest, brauchst du den &-Operator nicht. Wenn es ein Primitiver Datentyp wär (int, float...) würdest du bei scanf das & brachen. edit: ge0wnt; mist ich hab einen delay
Bearbeitet von M.I.P.S. am 12.12.2002, 22:22
|
Vivo
Dreamworker
|
bei einfachen elmenten übergibt man die addresse
char x; scanf ("%s", &x);
bei arrays den pointer
char x [1024]; scanf ("%s", x); ... Nagel auf den Kopf getroffen
|
Duron
Here to stay
|
was tutsn da rum? ich würds so machen: --------------------------------- char text[40]; cin>>text; cout<<text; getch(); --------------------------------- edit: hab grad gemerkt dass es so nur eine zeichenkette einliest. hab seite einem dreiviertel jahr nicht mehr c programmiert
Bearbeitet von Duron am 12.12.2002, 23:12
|
FMFlash
tranceCoder
|
was tutsn da rum? ich würds so machen: --------------------------------- char text[40]; cin>>text; cout<<text; getch(); --------------------------------- fertig warum? darum: eingabe: das ist ein test ausgabe: das cin kann eher nix, weil man damit afair keine sätze einlesen kann
|
Duron
Here to stay
|
edit: hab grad gemerkt dass es so nur eine zeichenkette einliest. hab seite einem dreiviertel jahr nicht mehr c programmiert  hab ich leider erst später bemerkt, sorry
|
xdfk
pädagogisch wertvoll
|
char *interface(char *input_line) { char temp_char =0; int char_count =0;
if (!input_line) exitOnFatalErrorOutOfMemory(); while ( ( (temp_char = getchar()) != '\n')) { input_line[char_count] = temp_char; char_count++; if (char_count>=MAX_STR_LEN) break; } input_line[char_count] = '\0'; return(input_line); } die relativ sichere methode dinge einzulesen....
|
Vivo
Dreamworker
|
OT : Ich möchte wissen wieviele der hier gesammelten Codestücke vom Threadstarter hergenommen werden
|
atrox
in fairy dust... I trust!
|
ergänzung: da er aber nicht nach einer möglichkeit sucht aus einem file zu lesen sondern aus dem stdin stream -> gets () statt fgets () nein, gets() ist kein ersatz, es erlaubt keine beschränkung der stringlänge! stattdessen fgets mit dem parameter stdin aufrufen (wird von stdio.h zusammen mit stderr und stdout eingebunden)
|
xdfk
pädagogisch wertvoll
|
nein, gets() ist kein ersatz, es erlaubt keine beschränkung der stringlänge! stattdessen fgets mit dem parameter stdin aufrufen (wird von stdio.h zusammen mit stderr und stdout eingebunden) deswegem getchar und einfach ab einer bestimmten länge eingaben ignorieren...... 99,99999%ig secure. (ich wüsst keine möglichkeit das zu umgehen, heißt aber nix bin newbie in C)
|
semteX
hasst die KI
|
die relativ sichere methode dinge einzulesen.... he der f#ngt grad mal an mim programmiern erschlag ihn ned glei
|
Neo-=IuE=-
Here to stay
|
nennen wir die variable x
is jugendfreier
warum hab i dreck gecodet?!? i mach das imma so
du spannst feld auf mit 50 zeichn callled X
dann lest nen string ein (%s) und speicherst das auf X
mit printf gibst es wieder aus
wo is da der dreck?!?
klar speichert er es IRGENDWO
und? who cares? is ja egal wo im ram das ding liegt
@Weird: Da liegst du richtig! schau: wenn du das machst: char x[50] dann ist x die adresse vom 1. element des arrays und wert in [] gibt an um wieviel mal sizeof(variablentyp) (lieft anzahl bytes zurück  ) adressen er weitergeht  also is x[0] gleichbedeutend mit *x und x[1] mit *(x+1) wenn du jetzt scanf adresse von x[] geben willst musst entweder: &x[] machen, oda x
|
semteX
hasst die KI
|
jo eh!
beim scanf musst &x machn! Er muss sich das zeug ja von der Adresse holen...
btw, i code scho seit 3 jahrn so, habs so gelernt
|
Neo-=IuE=-
Here to stay
|
ja aber eben bei arrays is der name scho die erste adresse, also entweder bei arrays scanf("",x) oda scanf("",&x[])
|
wobbo
...
|
jo eh!
beim scanf musst &x machn! Er muss sich das zeug ja von der Adresse holen... jo eh... aber x alleine ist schon die adresse
|
semteX
hasst die KI
|
ja aber eben bei arrays is der name scho die erste adresse, also entweder bei arrays
scanf("",x) oda scanf("",&x[])
  i schnall ehrlichgsagt ned ganz was du meinst i hab es imma glernt dass ma so einliest und mit printf ausgiebt... mfg
|