Guten Tag Herrschaften,
ich machs kurz, ich sitze gerad noch an einem Win32-Konsolen-Game. Eine Kleinigkeit fehlt. Das Speichern eines Charakters in eine Save-Datei der ich einen bestimmten Namen über die Konsole geben kann, und genauso mit dem Loaden. Ich weiß nur wie ich die Eingaben bzw. Variablen unter einem immer konstanten Namen speichern kann, und loaden. Wie in dem Fall 'character.sav'.
|
C-/C++-Quelltext
|
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
|
...
...
...
void Speichern(void)
{
ofstream Save ("Saves\\character.sav", ios::binary); // konst. Name
cout << endl;
Console::attribute(FOREGROUND_GREEN);
cout << "Save of '" << name << "'...\n";
Sleep (2000);
Save.write ((char*) &name, sizeof (name));
Console::attribute(FOREGROUND_RED);
cout << "Done.\n";
cout << endl;
Console::attribute(FOREGROUND_GREEN);
cout << "Save of '" << fname << "'...\n";
Sleep (2000);
Save.write ((char*) &fname, sizeof (fname));
Console::attribute(FOREGROUND_RED);
cout << "Done.\n";
cout << endl;
Console::attribute(FOREGROUND_GREEN);
cout << "Save of '" << rasse << "'...\n";
Sleep (2000);
Save.write((char*) &rasse, sizeof (rasse));
Console::attribute(FOREGROUND_RED);
cout << "Done.\n";
cout << endl;
Console::attribute(FOREGROUND_GREEN);
cout << "Save of '" << alter << "'...\n";
Save.write ((char*) &alter, sizeof (alter));
Sleep (2000);
Console::attribute(FOREGROUND_RED);
cout << "Done.\n";
// Datei schließen
Save.close ();
cout << "Save-Process has been completed! \1 \2 \n";
Sleep (2000);
cout << endl;
Console::attribute(FOREGROUND_INTENSITY);
cout << endl;
Hauptprogramm ();
}
void Laden(void)
{
Console::attribute(FOREGROUND_INTENSITY);
cout << "Load 'character.sav' ...\n";
ifstream Load ("Saves\\character.sav", ios::binary);
Load.read ((char*) &name, sizeof (name));
Load.read ((char*) &fname, sizeof (fname));
Load.read ((char*) &rasse, sizeof (rasse));
Load.read ((char*) &alter, sizeof (alter));
Load.close ();
NebenprogrammC ();
}
|
Aber wenn man mehrere Charaktere erstellt dann gibts ein Problem... ;-)
Ich hab es so versucht, um der Savedatei einen Namen zu geben, und beim Laden diesen Namen auch aufzurufen:
|
C-/C++-Quelltext
|
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
|
...
...
char dateiname[256];
...
...
void Speichern(void)
{
cout << "Unter welchem Namen möchtest du deine Charakterinfos speichern? : ";
cin >> dateiname;
ofstream Save ("Saves\\"dateiname &&".sav", ios::binary);
cout << endl; //^^ Geht nich, wie mach ich das?
Console::attribute(FOREGROUND_GREEN);
cout << "Save of '" << name << "'...\n";
Sleep (2000);
Save.write ((char*) &name, sizeof (name));
Console::attribute(FOREGROUND_RED);
cout << "Done.\n";
cout << endl;
Console::attribute(FOREGROUND_GREEN);
cout << "Save of '" << fname << "'...\n";
Sleep (2000);
Save.write ((char*) &fname, sizeof (fname));
Console::attribute(FOREGROUND_RED);
cout << "Done.\n";
cout << endl;
Console::attribute(FOREGROUND_GREEN);
cout << "Save of '" << rasse << "'...\n";
Sleep (2000);
Save.write((char*) &rasse, sizeof (rasse));
Console::attribute(FOREGROUND_RED);
cout << "Done.\n";
cout << endl;
Console::attribute(FOREGROUND_GREEN);
cout << "Save of '" << alter << "'...\n";
Save.write ((char*) &alter, sizeof (alter));
Sleep (2000);
Console::attribute(FOREGROUND_RED);
cout << "Done.\n";
// Datei schließen
Save.close ();
cout << "Save-Process has been completed! \1 \2 \n";
Sleep (2000);
cout << endl;
Console::attribute(FOREGROUND_INTENSITY);
cout << endl;
Hauptprogramm ();
}
void Laden(void)
{
Console::attribute(FOREGROUND_INTENSITY);
cout << "Gib den Namen der Save-Datei ein :";
cin >> dateiname;
cout << "Load '" << dateiname << ".sav' ...\n";
ifstream Load ("Saves\\" dateiname &&".sav", ios::binary);
//^^ Geht auch nich
Load.read ((char*) &name, sizeof (name));
Load.read ((char*) &fname, sizeof (fname));
Load.read ((char*) &rasse, sizeof (rasse));
Load.read ((char*) &alter, sizeof (alter));
Load.close ();
NebenprogrammC ();
}
|
Nun, angenommen ihr habt mein Anlegen verstanden. Könntet ihr mir weiterhelfen? Es geht nur darum wie ich die Save-Datei eines erstellten Charakters selbst benennen bzw. aufrufen kann =) :roll:
Danke im Voraus :idea: