CSV Datei auslesen/ausgeben



  • Hallo,
    ich bin C-Neuling und komme grad absolut nicht klar.
    Aus einer CSV Datei sollen Untergrenze, Obergrenze und Prozentsatz ausgelesen werden und in der Konsole ausgegeben werden.

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
        FILE *CSV;
        int v,b,s;
        CSV = fopen("D:\\Text.csv","r");
       while((fscanf(CSV,"%d;%d;%d\n",&v,&b,&s)) != EOF)
       fprintf(stdout,"%d\n%d\n%d\n",v,b,s);
    
        system("Pause");
        return 0;
    }
    

    So funktionierts aber nicht, das wird eine Endlosschleife. Kann mir jemand helfen? Was mach ich falsch? Ist der Ansatz denn so überhaupt richtig?



  • gast27 schrieb:

    So funktionierts aber nicht, das wird eine Endlosschleife.

    Sehr allgemeine Fehlerbeschreibung.
    Was gibt das Programm denn aus, wenn deine Datei zu Ende gelesen wurde?

    Es ist besser, du liest die Zeile mit fgets ein und wertes diese dann mit sscanf aus.
    Die Xscanf geben als Rückgabewert auch die Anzahl erfolgreich gelesener Werte zurück. Diesen kannst du auch auswerten.



  • wenn DU " != EOF" wegläßt sollte es funktionieren.

    scanf() gibt die Anzahl ausgelesener Parameter zurück, also gegen 0
    testen. fgets() kannst DU auf EOF testen.



  • fscanf gibt schon ein EOF zurück, wenn das End OF File erreicht wurde.
    Evtl. reicht es aus, wenn er das '\n' bei fscanf durch ein ' ' (Leerzeichen) ersetzt.


Log in to reply