Funktion die einem die Anzahl der Zeilen einer txt-Datei zurückgibt



  • Gibt es so eine Funktion ? Wenn nicht wie komme ich sonst an die Anzahl ?

    Hab es mit fgetc versucht jedoch ohne Erfolg .

    Hier der Code :

    int test_anzahl_zeilen(char datei_name[])
    {
    FILE *datei;
    int j = 0,ch,i;
    char buffer[80];

    datei = fopen (datei_name,"r");

    ch = fgetc( datei );
    for( i=0; (i < 80 ) && ( feof( datei ) == 0 ); i++ )
    {
    buffer[i] = (char)ch;
    ch = fgetc( datei );

    if (ch == '\n')
    j++;
    }

    fclose (datei);

    return (j);
    }

    Hoffe mir kann jemand helfen



  • Wieso hast Du da so einen buffer? Eigentlich interessieren dich doch nur die Zeilenumbrüche, oder? Desweiteren ist feof eine Funktion die man in den meisten Fällen nicht braucht.
    Für den Hausgebrauch würde ich folgendes vorschlagen:

    /* Passende Header */
    long clf (char const* name) {
        FILE* f = fopen (name, "r"); 
        long i = 0, c; 
        if (!f) 
            return 0;
        while ((c = fgetc (f)) != EOF)
            if (c == '\n') 
                ++i; 
        if (fclose (f)) {    
            /* Größeres Problemchen ... */
        }    
        return i; 
    }
    

    Auf einigen Systemen muss kann EOF nicht von gültigen Rückgabewerten unterschieden werden. Ein solches System wirst Du aber kaum besitzten.


Anmelden zum Antworten