Problem writing data to csv file
Sep 14, 2013 at 5:59pm UTC
Hey guys,
first, sorry for my bad english. Im from germany but i read a few posts here and think the help for others was very good. :D
Me and my friends want to write and save a highscore for a game to an existing csv-file. The format for the csv data is "name, numbers of rounds" .
Here in the code i have an existing example for a player and the number of rounds he needed to reach the goal.
When im running the programm, it deletes every already existing data in the file and overwrites it with just a ",". Nothing else.
Do we have a malfunction in the loop or in the convertsion?
Im really looking forward to your answers :)
Greetings
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
private : void highscoreSchreiben() {
//Beispiel für Gewinner
string nameGewinner = "Hans" ;
int rundenZahlGewinner = 9 ;
using namespace std;
int i = 0;
//stringdaten werden hier als int abgespeichert s.U.
int ersterPlatz, zweiterPlatz, dritterPlatz, vierterPlatz, fuenfterPlatz;
char zeichen[100];
string daten[100];
//Stringstream zum konvertieren der Zahlen zu Strings
stringstream ss;
ss << rundenZahlGewinner;
//Ein- und Auslesen
ifstream highscoreLesen;
highscoreLesen.open("speicherHighscore.csv" );
ofstream highscoreSpeichern;
highscoreSpeichern.open("speicherHighscore.csv" );
if (!highscoreLesen.is_open()) {
cerr << "Speicherstand ist nicht vorhanden!" << endl;
} else {
while (highscoreLesen.getline(zeichen, 100, ',' )) {
//ausgelesene chars werden in strings abgespeichert.
daten[i] = zeichen;
//Konvertieren
ersterPlatz = atoi(daten[1].c_str());
zweiterPlatz = atoi(daten[3].c_str());
dritterPlatz = atoi(daten[5].c_str());
vierterPlatz = atoi(daten[7].c_str());
fuenfterPlatz = atoi(daten[9].c_str());
//Einsortieren
if (rundenZahlGewinner<= ersterPlatz) {
daten[9]=daten[7];daten[7]=daten[5];daten[5]=daten[3];daten[3] = daten[1];
daten[1] = ss.str();
daten[0] = nameGewinner;
} else if (rundenZahlGewinner<= zweiterPlatz) {
daten[9] = daten[7];daten[7]=daten[5];daten[5]=daten[3];
daten[3] = ss.str();
daten[2] = nameGewinner;
} else if (rundenZahlGewinner<= dritterPlatz) {
daten[9] = daten[7]; daten[7]=daten[5];
daten[5] = ss.str();
daten[4] = nameGewinner;
} else if (rundenZahlGewinner<= vierterPlatz) {
daten[9]=daten[7];
daten[7] = ss.str();
daten[6] = nameGewinner;
} else if (rundenZahlGewinner<= fuenfterPlatz) {
daten[9] = ss.str();
daten[8] = nameGewinner;
}
i++;
}
//In Datei schreiben
highscoreSpeichern << daten[i] << "," << endl;
}
highscoreLesen.close();
highscoreSpeichern.close();
}
Last edited on Sep 14, 2013 at 6:13pm UTC
Topic archived. No new replies allowed.