fdatei auslesen?



  • hallo, ich will ne txt datei auslesen.

    hier ist mein Problem:

    while(  feof(Fp) !=0 ) {
    fgets(LineBuf,lMaxLineLen,Fp);
    }
    

    wenn ich das so mache, nimmt er die Datei nicht, überspringt sie.

    while( feof(Fp) ==0 ) {
    fgets(LineBuf,lMaxLineLen,Fp);
    }
    

    bei dieser art, bekomme ich kein Dateiende und das Programm gibt mir leerzeilen aus?!?

    was ist denn die richtige Methode, so dass mein Programm die Datei bis zum ende ausliest?



  • hi, bin zwar auch erst 5 min da aber ich versuchs mal.

    liefert feof(FILE) nicht nur den mode des Files zurück?
    d.h. du könntest mal versuchen

    while( feof(Fp) != _MEOF) {
    fgets(LineBuf,lMaxLineLen,Fp);
    }
    

    _MEOF könnte dann die Kennzeichnung für das end of file Muster sein, dass die FILE struktur besitzt.
    Weiß nicht ob ich dir damit helfen konnte, vllt versteh ich auch grad was falsch, wie gesagt -->Neuling 🙄



  • Hi,

    bei mir funktioniert das folgende Beispiel ohne Probleme:

    a.c

    #include <stdio.h>
    #include <stdlib.h>
    
    #define MAXCHARS  10
    
    int main (void) {
        char line[MAXCHARS];
        FILE *fp = fopen("a.c", "r");
    
        while (fgets(line, MAXCHARS, fp)) {
            printf("%s", line);
        }
    
        fclose(fp);
    
        return 0;
    }
    

    Gruß mcr



  • Du hast recht mcr.
    fgets liefert dir immer den buffer in den du einliest, es sei denn es geht was schief, dann gibt die funktion bei mir 0 zurück was zum abbruch führt.
    feof kann man sich praktisch sparen.



  • ja, du hast recht. ich wollte irgendein abbruchkriterium haben 🙂

    daran hab ich natürlich nicht gedacht:

    hole soo lange, bis die datei leer ist. leer = eof || fget = NULL

    danke 🙂



  • Hmmm.

    Ich habe schon Zeilen gesehen, die mehr als 10 Zeichen hatten.
    Habe sogar von Zeilen gehört, die länger als 100 Zeichen waren!



  • Klingt jetzt vllt doof aber:

    mcr schrieb:

    Hi,
    bei mir funktioniert das folgende Beispiel ohne Probleme:

    Der wird sich schon auch im klaren sein dass Files länger als 10 zeichen sein können, aber führen wir das thema nicht weiter, die frage ist beantwortet 🤡


Anmelden zum Antworten