Quote:
Originally Posted by Black Tiger ツ
Eine fußgesteuerte Schleife und für die Abfragen am besten switch-case benutzen.
Code:
#include <iostream>
using namespace std;
int GetInput();
void DisplayMainMenu();
void DisplayOptionsMenu();
void Options();
int main ( int arc, char **argv ){
int select = 0;
do
{
system("cls");
DisplayMainMenu();
select = GetInput();
switch(select) {
case 1:
cout << "Spiel gestartet!\n";
break;
case 2:
Options();
break;
case 3:
cout << "Bye!";
break;
default:
break;
}
} while(select!=3);
system("PAUSE");
return 0;
}
int GetInput()
{
int select;
cin >> select;
return select;
}
void DisplayMainMenu()
{
cout << "Spiel Menu\n";
cout << "Waehle aus...\n";
cout << "1 - Starte Spiel\n";
cout << "2 - Optionen\n";
cout << "3 - Exit\n";
cout << "Eingabe: ";
}
void DisplayOptionsMenu()
{
cout << "Spiel Menu\n";
cout << "Waehle aus...\n";
cout << "1 - Level\n";
cout << "2 - Sound\n";
cout << "3 - Zurueck\n";
cout << "Eingabe: ";
}
void Options()
{
int select = 0;
do
{
system("cls");
DisplayOptionsMenu();
select = GetInput();
switch(select)
{
case 1:
cout << "level optionen";
break;
case 2:
cout << "sound optionen";
break;
case 3:
break;
default:
break;
}
} while(select!=3);
}
|
Von
using namespace std würde ich persönlich abraten. Da hat es schon durchaus einige Male Probleme gegeben, weil es die Funktion in einem anderen Namespace bereits gegeben hat und der Compiler nicht wusste, welche Funktion gemeint war.
system() ist auch nicht gerade zu empfehlen, wenn man weiß, was eigentlich dabei passiert:
Code:
std::cout << std::string( 100, '\n' );
wäre eine Alternative zu
system("CLS").
Code:
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // um den Buffer zu leeren
std::cin.get()
wäre eine Alternative zu
system("PAUSE")