Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 19.01.2004, 15:51 Titel: Objekte speichern und laden |
|
|
tachchen leutz
bin grad dabei mein 1. Spiel in c++ zu schreiben, und habn kleines prob mit meiner Highscore Liste, und zwar verwende ich die string Klasse der STL um die Namen in der Liste zu speichern, ich hab mir also ein Array von 10 string objekten angelegt
Code: |
#include <string>
using namespace std;
string m_Names[10];
|
und hab meinen GameManager um folgende Routinen zum speichern bzw. laden ergänzt
Code: |
void CGameManager::LoadScores(void)
{
ifstream LoadFile;
LoadFile.open(PATH_NAMES, ios::in | ios::binary);
LoadFile.read((char*)m_Names, sizeof(m_Names));
LoadFile.close();
}
void CGameManager::SaveScores(void)
{
ofstream SaveFile;
SaveFile.open(PATH_NAMES, ios::out | ios::binary);
SaveFile.write((char*)m_Names, sizeof(m_Names));
SaveFile.close();
}
|
aber irgendwie funzt das net so recht
kann mir mal wer helfen?
p.s.: hab die Forensuche benutzt aber nichts brauchbares gefunden |
|
Nach oben |
|
|
Cyianor Super JLI'ler
Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 19.01.2004, 16:39 Titel: |
|
|
Code: | Savefile << m_Names[0];
Savefile << m_Names[1];
Savefile << m_Names[2];
Savefile << m_Names[3];
... |
|
|
Nach oben |
|
|
xardias JLI Master
Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 20.01.2004, 14:52 Titel: |
|
|
Das ganze natürlich am besten in einer schleife. |
|
Nach oben |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 22.01.2004, 08:18 Titel: |
|
|
also hab das jetz folgendermaßen umgesetzt:
Code: |
void CGameManager::LoadScores(void)
{
ifstream LoadFile;
LoadFile.open(PATH_NAMES, ios::in | ios::binary);
for(i=0;i<10;i++)
LoadFile >> m_Names[i];
LoadFile.close();
}
void CGameManager::SaveScores(void)
{
ofstream SaveFile;
SaveFile.open(PATH_NAMES, ios::out | ios::binary);
for(i=0;i<10;i++)
SaveFile << m_Names[i];
SaveFile.close();
}
|
funzt soweit och, gibt bloß noch das prob das scheinbar immer der gesamte Dateiinhalt schon in das 1. Arrayelement geladen wird, is irgendwie auch logisch, nur kann mir irgendjemand mal zeigen wie ich das hinkrieg das immer nur ein Eintrag aus der Datei in ein Element des Arrays geladen wird?
noch was andres, bei mir kommt immer Invalid_session wenn ich was posten will, kann wer was damit anfangen? |
|
Nach oben |
|
|
Cyianor Super JLI'ler
Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 22.01.2004, 11:36 Titel: |
|
|
LoadFile >> Array[i];
liest immer eine Zeile. DAs heißt du solltest deine Elemente bei Save am besten so reinschreiben
Code: | for(int i=0;i<10;i++)
{
SaveFile << Array[i];
SaveFile << '\n';// also ein Element schreiben, dann neue Zeile,
// dann nächstes Element schreiben, wieder neue
// Zeile, ....
} |
|
|
Nach oben |
|
|
|