text einlesen in c++
moidaschl 12.12.2002 - 16:26 2268 47
moidaschl
Vollzeit-Hackler
|
also ich will mit cin .. oder scanf ( mir egal) einen text einlesen ... also einer schreibt hallo lieber overclocker 12344 ... und ich will dass dieser text dann unten wieder ausgegeben wird? wie geht des? ich kann des irgendwie nur einzehlne zahlen, buchstaben etc.. danke
|
Vivo
Dreamworker
|
int main () { char str [80];
scanf ("%s",str);
//... blabla
printf ("%s",str);
return 0; }
Edit zwecks Volständigkeit : #include <stdio.h>
|
moidaschl
Vollzeit-Hackler
|
thx
|
atrox
in fairy dust... I trust!
|
nur zum strings lesen ist scanf viel zu rechenzeitaufwendig, und ausserdem viel zu unsicher - du kommst in teufels küche, falls sich der string nicht im ziel-feld ausgeht!
zum einfachen lesen aus text-dateien empfehle ich zb: char *fgets(char *s, int size, FILE *stream);
|
Yeahman
OC Addicted
|
nur zum strings lesen ist scanf viel zu rechenzeitaufwendig, und ausserdem viel zu unsicher - du kommst in teufels küche, falls sich der string nicht im ziel-feld ausgeht! Kann ich nur zustimmen, ich würd scanf auch nur verwenden, wenns wirklich nicht anders geht, und da fällt mir auf die Gachn kein Anwendungsfall ein.
|
FMFlash
tranceCoder
|
nur zum strings lesen ist scanf viel zu rechenzeitaufwendig, und ausserdem viel zu unsicher - du kommst in teufels küche, falls sich der string nicht im ziel-feld ausgeht!
zum einfachen lesen aus text-dateien empfehle ich zb: char *fgets(char *s, int size, FILE *stream); ergänzung: da er aber nicht nach einer möglichkeit sucht aus einem file zu lesen sondern aus dem stdin stream -> gets () statt fgets () cin kann eher nix, weil man damit afair keine sätze einlesen kann
Bearbeitet von FMFlash am 12.12.2002, 20:13
|
aNtraXx
trailer park king
|
wennst willst kannst es auch in eine datei auslagern und wieder einlesen
schaust einfach mal in der funktion fstream nach und dann gibts die klassen ofstream und ifstream mit denen du operatoren bestimmen kannst
|
semteX
begehrt die rostschaufel
|
jo
einfach
char fickn[50]; scanf("%s", &fickn);
printf("%s", fickn);
fertig
|
Vivo
Dreamworker
|
jo
einfach
char fickn[50]; scanf("%s", &fickn);
printf("%s", fickn);
fertig hmm ... das ist mir jetzt abgesehn von der nicht jugendfreien wahl der variablen nicht ganz klar ... in diesem falls wäre "fickn" ein pointer auf das erste element des Arrays ... Mit &fickn bekommst du die Adresse des Pointers ... hmm ... aber dar das ja schon ein Array ist macht das doch garkeinen Sinn das ganze by Reference zu machen ... Oder lieg ich falsh ? Bitte korregier mich falls ich auf der Leitung stehe !
|
Neo-=IuE=-
Here to stay
|
jo semtex hat ärgsten dreck gecodet  weil er nimmt die adresse von "fickn" und schaut im speicher was für adresse in der speicherzelle mit der adresse "fickn" liegt... und dorthin schreibt ers dann, also mal IRGENDWO @fgets() man kann ja auch als datei stdin angeben
|
weiRd
Addicted
|
ich bin mir nicht mehr ganz sicher (c is schon länger her) aber ich bilde mir ein, dass man bei scanf &variable schreiben hat müssen
|
semteX
begehrt die rostschaufel
|
jo semtex hat ärgsten dreck gecodet  weil er nimmt die adresse von "fickn" und schaut im speicher was für adresse in der speicherzelle mit der adresse "fickn" liegt... und dorthin schreibt ers dann, also mal IRGENDWO
@fgets() man kann ja auch als datei stdin angeben  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!
|
aNtraXx
trailer park king
|
jo wieso machst es ned direkt sondern über einen pointer? des called by reference brings ja ned
|
FMFlash
tranceCoder
|
bei einfachen elmenten übergibt man die addresse
char x; scanf ("%s", &x);
bei arrays den pointer
char x [1024]; scanf ("%s", x);
|
weiRd
Addicted
|
bei einfachen elmenten übergibt man die addresse
char x; scanf ("%s", &x);
bei arrays den pointer
char x [1024]; scanf ("%s", x); ok so war es  ich würde die zeichen einzelnd einlesen und dann in eine array hineinschreiben...
|