[C] Auslesen von Strings aus einer Datei?

gehacktesmacher

Lt. Commander
Registriert
Dez. 2002
Beiträge
1.148
C Auslesen von Strings aus einer Datei?

Hi!

Hat jemand eine Ahnung wie ich aus einer Datei einen String mit fscanf auslese der Leerzeichen enthält ohne dass die Zeichen nach dem Leerzeichen verworfen werden????

Und wie stelle ich dann diesen String mit fprintf im Bildschirm dar??????

Für jegliche Hile bin ich mehr als dankbar!

greetz gehacktesmacher
 
1. mir fscanf() kannst du immer nur bis zum nächsten leerzeichen einlesen.
fgets() liest eine vorgegebene anzahl von Zeichen oder bis \n kommt
die parameter der funktion findest du in der hilfe deines compielers

2. fprintf(stdout,%s,string);
oder einfach printf(%s, string); oder puts(string);
 
und wenn Du nicht weisst wie lang der String ist machst Du's so:

FILE* fp;
char string[laenge]
int i=0;
do
string=fgetc(FILE*) //hoffentlich stimmt die Syntax, bitte prüfen!
while ((string!='\n')&&(i<laenge)&&(!feof(fp));

Ganz nebenbei hast Du damit eine Funktion die einen String einliest ohne die Bereichsgrenzen des Feldes zu überschreiten. fscanf() macht das m. W. nicht, Berichtigungen werden gerne entgegengenommen.
 
Zuletzt bearbeitet:
Original erstellt von Morgoth
string=fgetc(FILE*) //hoffentlich stimmt die Syntax, bitte prüfen!


Das geht sicher nicht. Hast da glaub ich nur was verwechselt. Du hast als Parameter den Vareblentyp (FILE*) anstatt der Vareable (fp).
Aber kann ja mal passieren. Nobody is Perfekt;) .

Beim Rest binn ich mir nicht ganz sicher, aber ich glaube da ist auch noch ein kleiner Fehler.

Ich würde es so machen:

FILE *ip;
char string[128];

ip=fopen("irgendwas.txt");
fgets(string,81,ip);
fclose(ip);
 
Original erstellt von Morgoth
und wenn Du nicht weisst wie lang der String ist machst Du's so:

Ist ja auch nur in diesem einen bestimmten Fall so. Bei fgets() musst Du ja die Länge des Strings kennen.

FILE* fp=fopen("irgendwas.txt");
char string[laenge];
int i=0;
do
string=fgetc(fp) //hoffentlich stimmt die Syntax, bitte prüfen!
while ((string!='\n')&&(i<laenge)&&(!feof(fp));
fclose(fp);


natürlich: string=fgetc(fp);

Den Rest hab ich auch ein wenig verbessert.
 
Zurück
Oben