001
12.05.2004, 10:54 Uhr
Pablo
Supertux (Operator)
|
Für C gibt es verschiedene Varianten. Die erste ist, wenn du du die max. Länge des Strings kennst bzw. wenn du die max. Länge beschränkst, dann kannst du char [X] benutzen
C++: |
void foo() { char line[1024]; /* Auf 1023 Zeichen beschränken fgets(line, 1024, stdin); .... }
|
(fgets ist wie gets, nur dass man auch die Länge eingibt und den Puffer, von dem man lesen soll, stdin=standard input=Tastatur)
Es gibt eine (nicht so saubere, für C++ler) Lösung, bei der du die Länge kennst, z.b. du weißt, dass man immer das Format xx:yy:zz-abc eingeben wird. die Länge ist 13, 12 Zeichen plus \0.
C++: |
void foo() { char* line; line = (char*) malloc(13); if (!line) { fprintf(stderr, "Es gibt keinen Speicher mehr\n"); return; } fgets(line, 13, stdin); ... // nicht vergessen, den Speicher freizugeben free(line); }
|
Unter C++ kannst du die Klasse string benutzen, die vereinfach alles, da sie sich um die Länge kümmert (mein C++ Bsp ist nicht so gut, da ich nur C Programmier bin)
C++: |
void foo() { std::string line; std::cin >> line; ... }
|
-- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! Dieser Post wurde am 12.05.2004 um 10:56 Uhr von Pablo editiert. |