Ja das stimmt aber jetzt habe ich so ein ähnliches Problem und wollte dafür nicht extra ein extra Theard öffnen.
Ich wollte eine art Highscore für meine Dart scheibe proggn bis mir aufgefallen ist das irgendwie die Namen in meiner verketteten liste überschreiben.
Ich finde eigentlich keinen Fehler oder gibt es bei char Verwendung mi verketteten listen eine Besonderheit?
Wenn ich ein Name eintrage und die liste aufrufe funktioniert es einwandfrei.
Doch sobald ich ein zweiten Name eintrage wird der erste mit überschrieben :/.
|
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
|
// #############################
// Name: Dart Highscore
// #############################
#include <iostream>
#include <list>
using namespace std;
int main ()
{
// Variablen
int Eingabe_int = NULL;
char Eingabe_char[16];
list<char*> lNamen;
list<char*>::iterator i;
int Anzahl = 1;
do
{
system ("cls");
cout << "_____ Dart Highscore ______" << endl;
cout << " 1. Score eintragen" << endl;
cout << " 2. Highscore anzeigen" << endl;
cout << " 0. Beenden" << endl;
cout << "---------------------------" << endl;
cout << "Eingabe: ";
cin >> Eingabe_int;
switch (Eingabe_int)
{
// Score eintragen
case 1:
{
// Score abfragen
system ("cls");
cout << "_____ Score eintragen _____" << endl;
cout << "Name: ";
cin.ignore ();
cin.get (Eingabe_char, 15);
// Score in die liste schieben
lNamen.push_back (Eingabe_char);
} break;
// Highscore anzeigen
case 2:
{
// Score auflisten
system ("cls");
cout << "_____ Score anzeigen _____" << endl;
for (i=lNamen.begin(); i!=lNamen.end(); i++)
{
cout << " " << Anzahl << ". " << (*i) << endl;
}
cout << endl;
system ("pause");
} break;
}
} while (Eingabe_int != 0);
return 0;
}
|