text einlesen in c++

Seite 1 von 4 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/text_einlesen_in_c_58680/page_1 - zur Vollversion wechseln!


moidaschl schrieb am 12.12.2002 um 16:26

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 schrieb am 12.12.2002 um 16:31

int main ()
{
char str [80];

scanf ("%s",str);

//... blabla

printf ("%s",str);

return 0;
}

Edit zwecks Volständigkeit : #include <stdio.h>


moidaschl schrieb am 12.12.2002 um 16:39

thx


atrox schrieb am 12.12.2002 um 19:17

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 schrieb am 12.12.2002 um 20:09

Zitat von atrox
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 schrieb am 12.12.2002 um 20:10

Zitat von atrox
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


aNtraXx schrieb am 12.12.2002 um 20:24

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 schrieb am 12.12.2002 um 20:26

jo

einfach

char fickn[50];
scanf("%s", &fickn);

printf("%s", fickn);

fertig


Vivo schrieb am 12.12.2002 um 21:26

Zitat von semteX
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=- schrieb am 12.12.2002 um 21:32

jo semtex hat ärgsten dreck gecodet :D
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 schrieb am 12.12.2002 um 22:06

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 schrieb am 12.12.2002 um 22:09

Zitat von Neo-=IuE=-
jo semtex hat ärgsten dreck gecodet :D
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 schrieb am 12.12.2002 um 22:14

jo wieso machst es ned direkt sondern über einen pointer? des called by reference brings ja ned


FMFlash schrieb am 12.12.2002 um 22:15

bei einfachen elmenten übergibt man die addresse

char x;
scanf ("%s", &x);

bei arrays den pointer

char x [1024];
scanf ("%s", x);


weiRd schrieb am 12.12.2002 um 22:17

Zitat von FMFlash
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...




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026