Problem writing data to csv file

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
Topic archived. No new replies allowed.