On Sun, 29 Aug 2010 13:06:02 +0200 lano <[email protected]> wrote: > Bernhard Guillon schrieb: > > Wenn was unklar ist sag bescheid. > bescheid. > > Ich wollt nun, nachdem das mit hallo welt so gut geklappt hat eine > datei auslesen. > google an und ein beispiel genommen. wieder eine extra datei genommen > file.c und file.h > > *-------file.h-------* > #ifndef FILE_H // > #define FILE_H // definiere > > > char read_file(char *file_name); //Prototyp von deiner Funktion > > > #endif //ende der Bedingung > > > *--------file.c--------* > #include <stdio.h> > #include <stdlib.h> > > #include "file.h" > > 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). */ > char Text[600]; > > char read_file(char *file_name) { /* du willst vermutlich nicht "char", sondern "char *" zurückgeben*/ > 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). */ > fclose(file_name); > return Text; /* return Text; wird vermutlich nichtmal übersetzt, da von (char *) nach char konvertiert wird. */ > } > > *-------main.c-------* > #include "stdio.h" > #include "plugin.h" > #include "http.h" // HTTP Client > #include "file.h" // Liest eine Datei > > char channel[30]; > > // Starten des Plugins > void plugin_exec(PluginParam *par) { > > // Aktuellen Kanal holen und speichern > HTTP_downloadFile("localhost", 80, "/control/getonidsid", > "/tmp/currentChannel", 0, 1); > //read_file("/tmp/currentChannel"); > > printf("Kanal: %c\n", read_file("/tmp/currentChannel")); > > > return; > } > > > *--------ENDE--------* > > Das mit HTTP_downloadFile funktioniert wunderbar, also wurde ich ein > wenig übermütig, datei lesen klappt nicht. > 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 :) > > meine mal gelesen zu haben das void nix zurück gibt, int ne zahl, und > char nen zeichen. 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. > > Perl ist wesendlich einfacher :) Perl ist auf ne andere art obskur ;) 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. > > -Sven-
Ich hoffe dass Ich dich nicht zu sehr verwirrt habe. Gruß, Nathanael -- ---------------------------------------------------------------------------- PUG - Penguin User Group Wiesbaden - http://www.pug.org

