Ok.
Ich werde mal schauen ob sich die Struktur sinvoll anders lösen lässt (:
Und im Notfall werde ich extern verwenden.
Danke!
EDIT:
Ah das "umdesignen" hat sehr merkwürdige Errors hervorgerufen ...
spiel.coo
|
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
|
#include <iostream>
#include "prototypen.hpp"
using namespace std;
struct S_Spielfeld//Struktur des Spielfeldes
{
bool B_besetzt;
char Name[30];
};
int GrenzeHorizontalMax = 5; //Maximale Horizontale Grenze
cout << "tut";
int GrenzeHorizontalMin = 1; //Minimale Horizontale Grenze
int GrenzeVertikalMax = 5; //Maximale Vertikale Grenze
int GrenzeVertikalMin = 1; //Minimale Vertikale Grenze
S_Spielfeld a_Spielfeld[GrenzeHorizontalMax][GrenzeVertikalMax];//Array des Spielfeldes
void Feldbesetzen()
{
int x,y;
do {//x Koordinate abfragen
cout << "x-Position (1-5): ";
cin >> x;
}while(GrenzeHorizontalMin < 1 || GrenzeHorizontalMax > 5);
do {//y Koordinate abfragen
cout << "y-Position (1-5): ";
cin >> y;
}while(GrenzeVertikalMin < 1 || GrenzeVertikalMax > 5);
cout << "Name: ";
cin.get(a_Spielfeld[GrenzeHorizontalMax-1][GrenzeVertikalMax-1].Name,29);
}
|
Lernprojekt.cpp (hauptdatei)
|
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
|
#include <iostream>
#include "prototypen.hpp"//Funktionsprototypen
using namespace std;
int main()
{
char Wahl;
do
{ //Menue
cout << "1. Spielfeld anzeigen\n";
cout << "2. Feld besetzen\n";
cout << "3. Felddaten anzeigen\n";
cout << "4. Spielfeld loeschen\n";
cout << "5. Programm beenden\n";
cout << "Waehle einen Menuepunkt: ";
cin >> Wahl;
switch(Wahl)
{
case '1':
cout << "1 - Spielfed anzeigen gewaehlt\n";
zurueckzumMenue();//Zurueck zum Menue?
break;
case '2':
cout << "2. Feld besetzen gewaehlt\n";
Feldbesetzen();//Feld besetzen lassen
zurueckzumMenue();//Zurueck zum Menue?
break;
case '3':
cout << "3. Felddaten anzeigen gewaehlt\n";
zurueckzumMenue();//Zurueck zum Menue?
break;
case '4':
cout << "4. Spielfeld loeschen gewaehlt\n";
zurueckzumMenue();//Zurueck zum Menue?
break;
}
}while (Wahl != '5');//Beenden?!
return 0;
}
|
menue.cpp
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
//Alle Funktionen das Menue betreffend
#include <iostream>
#include "prototypen.hpp"
using namespace std;
//zueruckzumMenue
//
//Fragen ob man zum Hauptmenu zurueck will
void zurueckzumMenue ()
{
char wahl = 'n';
do{
cout << "Zureuck zum Menue \?";
cin >> wahl;
}while (wahl != 'j' && wahl!='J');
}
|
Meine prototype.cpp
|
C-/C++-Quelltext
|
1
2
3
4
5
6
|
#include <iostream>
using namespace std;
void zurueckzumMenue ();
void Feldbesetzen();
|
Er lieferte mir immer bei
|
C-/C++-Quelltext
|
1
|
S_Spielfeld a_Spielfeld[GrenzeHorizontalMax][GrenzeVertikalMax];//Array des Spielfeldes
|
das Konstant 0 nicht erlaubt sei.
Irgendwie ja unsinnig da ich vorher die Integers als 5 definiert hatte.
Also habe ich einen anderen Fehler vermutet und ein
|
C-/C++-Quelltext
|
1
|
cout << "tut";
|
dahingehangen.
1>------ Erstellen gestartet: Projekt: LernProjekt1, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>Spiel.cpp
1>c:\users\ich\projects\lernprojekt1\spiel.cpp(13) : error C2143: Syntaxfehler: Es fehlt ';' vor '<<'
1>c:\users\ich\projects\lernprojekt1\spiel.cpp(13) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\users\ich\projects\lernprojekt1\spiel.cpp(17) : error C2057: Konstanter Ausdruck erwartet
1>c:\users\ich\projects\lernprojekt1\spiel.cpp(17) : error C2466: Zuordnung eines Arrays der konstanten Größe 0 nicht möglich.
1>c:\users\ich\projects\lernprojekt1\spiel.cpp(17) : error C2057: Konstanter Ausdruck erwartet
1>c:\users\ich\projects\lernprojekt1\spiel.cpp(17) : error C2466: Zuordnung eines Arrays der konstanten Größe 0 nicht möglich.
1>c:\users\ich\projects\lernprojekt1\spiel.cpp(17) : error C2087: 'a_Spielfeld': Feldindex fehlt
1>c:\users\ich\projects\lernprojekt1\spiel.cpp(23) : error C2872: 'cout': Mehrdeutiges Symbol
1> kann 'c:\users\ich\projects\lernprojekt1\spiel.cpp(13) sein: int cout'
1> oder "c:\program files\microsoft visual studio 9.0\vc\include\iostream(53) : std::ostream std::cout"
1>c:\users\ich\projects\lernprojekt1\spiel.cpp(23) : error C2297: '<<': Ungültig, da der rechte Operand vom Typ 'const char [19]' ist
1>c:\users\ich\projects\lernprojekt1\spiel.cpp(23) : warning C4552: '<<': Operator hat keine Auswirkungen; Operator mit Nebeneffekt erwartet
1>c:\users\ich\projects\lernprojekt1\spiel.cpp(27) : error C2872: 'cout': Mehrdeutiges Symbol
1> kann 'c:\users\ich\projects\lernprojekt1\spiel.cpp(13) sein: int cout'
1> oder "c:\program files\microsoft visual studio 9.0\vc\include\iostream(53) : std::ostream std::cout"
1>c:\users\ich\projects\lernprojekt1\spiel.cpp(27) : error C2297: '<<': Ungültig, da der rechte Operand vom Typ 'const char [19]' ist
1>c:\users\ich\projects\lernprojekt1\spiel.cpp(27) : warning C4552: '<<': Operator hat keine Auswirkungen; Operator mit Nebeneffekt erwartet
1>c:\users\ich\projects\lernprojekt1\spiel.cpp(30) : error C2872: 'cout': Mehrdeutiges Symbol
1> kann 'c:\users\ich\projects\lernprojekt1\spiel.cpp(13) sein: int cout'
1> oder "c:\program files\microsoft visual studio 9.0\vc\include\iostream(53) : std::ostream std::cout"
1>c:\users\ich\projects\lernprojekt1\spiel.cpp(30) : error C2297: '<<': Ungültig, da der rechte Operand vom Typ 'const char [7]' ist
1>c:\users\ich\projects\lernprojekt1\spiel.cpp(30) : warning C4552: '<<': Operator hat keine Auswirkungen; Operator mit Nebeneffekt erwartet
1>Das Buildprotokoll wurde unter "file://c:\Users\Ich\Projects\LernProjekt1\Debug\BuildLog.htm" gespeichert.
1>LernProjekt1 - 13 Fehler, 3 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Ist daraufhin die sehr merkwürdige Fehlermeldung.
Ich überseh anscheinend ein vergessenes Semikolon ansonsten kann ich mir das ganze nicht vorstellen ,...