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!!