Strings und ints in Datei speichern/laden
-
Ich habe ein kleines PuzzleSpiel geschieben und will jetzt die Highscore speichern/laden. Hier ersmal, was ich dazu habe:
speichern:CStdioFile file; if(file.Open("score.dat", CFile::modeWrite)) { file.WriteString(name+" "); file.WriteString(punkte+"\n\r"); file.Close(); }
laden:
CStdioFile file; if(file.Open("score.dat", CFile::modeRead)) { file.ReadString(name); file.ReadString(pkt); file.Close(); }
Natürlich würde dann nichtnur ein Eintrag drin stehen, aber das ist erstmal zum Testen.
Beim Speichern habe ich die Punkte von int in CString umgewandelt, um mir das Schreiben in die Datei zu erleichtern. Das funktioniert auch alles soweit. Mein eigentliches Problem ist das lesen aus der Datei, da beim einlesen des Namens auch gleich immer mit die Punktzahl eingelesen wird. Wie kann ich dass verhindern? Muss ich da alles in 'ne neue Zeile packen?
Wenn das dann funktioniert, die nächste Frage: Wie wanle ich ich den CSring pkt wieder in ein integer um?
-
Upps, da is mir das "speichern:" und "laden:" wohl mit in den CodeTag reingerutscht. SRY.
-
Ja, ReadString() liest eine ganze Zeile Aus. Von daher musst du "name" und "Score" untereinander schreiben.
Ein CString in ein Integer umwandeln kannst du mit atoi()
int nScore = atoi(strHighScore);
Gruß
:: NoName ::