Nathanael Schweers schrieb:
int f;
/* du brauchst kein int, sondern ein (FILE *). int ist für file
deskriptoren, fgets und fopen aber benutzen zeiger auf FILE (ist ein
wrapper um filedeskriptoren, da ist sogar ein puffer mit drin). */
Ah ja, macht sinn. Das mit * zeigt dann auf eine adresse wo die daten dann abgelegt sind, wobei mich bei einer variablen die adresse ja nicht interessiert. in perl hätt ich ja ein filehandle, von daher versteh ich schon warum int völlig falsch ist.
Hab ich das halbwegs richtig verstanden?
char Text[600];

char read_file(char *file_name) {
/* du willst vermutlich nicht "char", sondern "char *" zurückgeben*/
hier im grunde das selbe, das was die funktion zurück gibt wird in der adresse xy gespeichert, ich will also nur die adresse wissen wo ich dann die daten finde. warum das so ist ist mir zwar völlig unklar, ich nehms aber mal so hin.
    f = fopen(file_name,"r");
    while( fgets(Text, sizeof(Text), f) !=0 )
/* was machst du da? das sieht so aus als würdest du solange fgets !=0
zurückgibt die datei schließen, und das ganze auch noch in den immer
gleichen puffer schreiben (die alten daten gehen also verloren). */
Mein got ja, jetzt raff ichs aber erst, das fclose(file_name) gehört ja noch zur while schleife.
; hab ich völlig übersehn.
    fclose(file_name);
    return Text;
/* return Text; wird vermutlich nichtmal übersetzt, da von (char *)
nach char konvertiert wird. */
Das versteh ich nun nicht mehr, mal angenommen ich scheibe die daten in Text, geb ich dann mit return Text nicht die daten wieder aus? müsst ich *Text zurück geben, also die adresse wo die daten liegen?

in perl kann ich einfach:
$text = "hallo";
return $text;

machen, und die funktion gibt hallo zurück
bei der printf Anweisung, wofür ist %s %c %l und was weis ich was es
da noch gibt, habs erst mit %s versucht, dann hab ich gedacht ok ist
ja nen char versuchstes mit %c :)

siehe "man 3 printf" oder "man 3p printf" dazu.
%s sagt printf dass hier ein string reinkommt. %c ein zeichen, %l steht
für "long". Davon gibt's ne menge mehr, z.b. auch für floating point.
Ok, hab ich kapiert.
Perl ist wesendlich einfacher :)
Perl ist auf ne andere art obskur ;)
Hmm, ich komm da eigendlich gut mit zurecht.
Aber stimmt schon, C ist für neulinge nicht gerade einfach, und ich
finde dass die standard bibliothek es einem neuling nicht gerade
einfacher macht.
Ich hatte c mal in der berufsschule, ist schon 15 Jahre her, das sah dann so aus das der Lehrer die Tafel in 5 min vollgeschrieben hat, ich war noch halbwegs interessiert aber all meine fragen konnt er mir nicht beantworten, "weil das so ist" war seine standard Antwort, warum konnt er mir in keinem fall erklären, nach 6 Monaten hab ich aufgegeben zu fragen und wie alle anderen gewartet bis ich den lösungszettel bekomme und hab einfach abgeschrieben.
Ich hoffe dass Ich dich nicht zu sehr verwirrt habe.
Geht so ;) ich hoffe ihr habt was zum lachen, weil ich mich so schwer tue. :)

-sven-
--
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an