Zeilen auslesen bis keine mehr da sind....



  • Hallo Leute,

    hier mal eine Anfängerfrage von einem Anfänger:
    Derzeit versuche ich grad eine Datei, in welche sich mehrere Werte untereinander befinden, auszulesen. Das klappt soweit ganz gut, aber leider bricht die Leserrei nicht ab, wenn keine Werte mehr da sind.
    Ich muss quasi immer in die Schleife den Wert für die Zeilenanzahl eingeben und nur dann werden mir auch immer die exakten Zahlen angezeigt. Ansonsten kommen zu den vorhandenen immer noch irgendwelche anderen Zahlen dazu...

    Problem: ich weiss ja nicht immer, wieviele Zeilen jetzt in einer neuen Datei auszulesen sein werden, deshalb soll die Schleife auch verlassen werden, sobald keine Zeilen mit Zeilen mehr zu finden sind.
    Kann man das der Schleife irgendwie klar machen?!?!?

    Jannek

    Anbei mal mein Code:
    #include<stdio.h>

    int main (void)
    {
    int i;
    int a[11];
    FILE *datei;

    datei=fopen ("Erde.txt", "r");
    for (i=0; i<=4; i++)
    {
    fscanf (datei, "%d", &a[i]);
    printf ("%d\n", a[i]);
    }
    fclose (datei);
    printf ("\n\n");
    return 0;
    }



  • man könnte den rückgabewert von 'fscanf' prüfen.
    ist der 0 oder EOF, dann springste aus der schleife raus...
    :xmas2:



  • Würde ich auch so machen.

    Und die Datei würde ich etwa so öffnen:

    if ( (datei = fopen("Erde.txt", "r")) == NULL)
        Anweisung für Fehler;
    


  • zeilenanzahl ermitteln

    while( (temp=fgetc(file)) != EOF)
    	{
        	   if (temp=='\n')
        	   {
                    lines++;
        	   }
    	}
    

    du koenntes auch mit fgets bis zum !foef einlesen



  • Danke für die Hilfe!!!!


Anmelden zum Antworten