Daten aus Datei einlesen



  • Ich hab eine Datei, in der Zahlen im ASCII-Code abgespeichert sind. Immer zwei Integerzahlen je Zeile, durch Komma getrennt. Nun will ich diese Zahlenpaare einlesen, verarbeiten und dann die naechsten beiden Zahlen erfassen, dabei steh ich aber irgendwie auf'm Schlauch. Das ist mein bisheriger Code, der funktioniert aber nicht so recht, um nicht zu sagen ueberhaupt nicht.

    bool CLevel::Level_laden(char* Pfad)
    {
        int x,y;
        x = 0;
        y = 0;
        FILE* Datei;
        Datei = fopen(Pfad,"rt");
    
        if (Datei == NULL)
        {
            return false;
        }
        while(!feof(Datei))
        {
            fscanf(Datei,"%f,%f", x, y);
        }
        fclose(Datei);
        return true;
    }
    

    Ich bekomme irgendwelche Runtimeerrors oder Schutzverletzungen. Ich vermute mal, dass ich mich mit den Pointern vertan habe oder sowas. Bin leider etwas aus der Uebung.
    Danke fuer jede Hilfe.



  • Wenn ich mich recht erinnere, musst Du fscanf die Adressen der Variablen übergeben (was eigentlich auch nur logisch ist):

    fscanf(Datei,"%f,%f", &x, &y);
    

    Ausserdem steht '%f' eigentlich für Fließkommazahlen, nicht für Integer, bei denen Du '%i' oder '%d' verwenden kannst.



  • Ich glaub's nicht, das war der Fehler. Ich muss mal mehr ueben. Naja, vielen dank, funktioniert jetzt einwandfrei.


Anmelden zum Antworten