ausgabe in csv



  • An die C++-Profis...

    ich habe einen struct:

    struct zeile{
            float posit;
            string time;
            double stk;
            double Vol;
            float MXBVol;
            bool glatt;
            }
    

    Der struct wird in einem Algorithmus berechnet für i Durchgänge (bis die drei vorgegebenen Werte abgearbeitet sind).
    Die Ergebnisse für den struct möchte ich gerne in eine csv-Datei schreiben. Womit mache ich das?

    fopen("ausgabe.csv","w");
    printf(n[1].MXVol);
    fclose("ausgabe.csv");
    

    ?Wenn ich in printf den Namen der Variablen angebe, dann beschwert sich der compiler mit:

    cannot convert 'float' to 'const char*' for argument '1' to 'int printf(const char*,...)'
    

    Für jede Idee bin ich dankbar!!



  • Erstens: In C++ arbeitet man lieber mit fstreams, die sind sicherer und einfacher zu handhaben als FILE*.

    Zweitens: Du solltest dir mal anschauen, was für Parameter printf() überhaupt benötigt - der erste Parameter ist ein String, der angibt, wie die übrigen Parameter interpretiert werden sollen.

    (außerdem schreibt printf() immer auf Monitor - du solltest den Rückgabewert von fopen() verwenden, um woanders hinzuschreiben.)

    FILE* output = fopen("ausgabe.csv","w");
    for(i=0;i<3;++i)
      fprintf(output,"%f;...",n[i].MXBVol,...);
    fclose(output);
    


  • Vielen Dank!!
    Ich glaub ich hätte Ewigkeiten gebraucht, bis ich das herausgefunden hätte!!!:)

    Jetzt gibt er mir allerdings nur die letzte Zeile des Durchgangs in die Datei, also bei n=3 nur die Ergebnisse für i=2. Wie bekomme ich hin, dass er es für jedes i untereinander schreibt?

    Danke für die Anfängernachhilfe!!


Anmelden zum Antworten