C++ Frage (Groß)

08/09/2013 14:09 ErawondA#1
Ich bins schon wieder :D
Ich habe nun fast erfolgreich den Code zu ende gebracht.
Da giebt es allerdings 1 Probelm und zwar meint der Debugger, dass ein Simikolon fehlt. Ich werde den Code mal posten und die betroffene Stelle makieren.
Code:
#include <iostream>

using namespace std;

// Hauptprogramm
//
int main ()
{
	// Variablen
	//
	int Spieleranzahl;      // Anzahl der Spieler
	char chAuswahl;        // Menüauswahl
	char chMapauswahl;     // Map wählen

	// Anzahl der Mitspieler abfragen
	cout << "Wie viele Mitspieler: ";
	cin >> Spieleranzahl;

	// Falsche Eingabe?
	if (Spieleranzahl == 0)
	{ 
		cout << "Falsche Eingabe" << endl;
    }
    // Singleplayer?
	else if ( Spieleranzahl == 1)
	{
		cout << "Du spielst gegen den Computer" << endl;
	}
	// Multiplayer
	else
	{
		cout <<"Multiplayer-Spiel\n\n";
		cout << "(j)eder gegen jeden oder (t)eamspiel: ";
		cin >> chAuswahl;

		// Jeder gegen jeden
		if (chAuswahl == 'j')
		{
			cout << "Jeder gegen jeden" << endl;
		}
		// teamspiel
		else if (chAuswahl == 't')
		{
			cout << "Teamspiel " << endl;
		}
		// Map auswahl
		else
		{
			cout <<"Map auswahl";
			cout << "(b)igboom oder (o)bama: ";
			cin >> chMapauswahl;

			// Bigboom
			if (chMapauswahl == 'b')
			{
				cout << "Bigboom geweahlt" << endl;
			}
			// Obama
			else if (chMapauswahl == 'o')
			{
				cout << "Obama geweahlt" << endl; <-- hier ist doch eins
			}
			// Falsch Eingabe
			else (chMapauswahl == 0)
			{                                  <-------- Hier soll ein ; vor
				cout << "Falsch Einabe " endl;
			}
		}

	}

	return 0;
}
08/09/2013 14:30 Jeoni#2
Code:
else (chMapauswahl == 0)
Hier liegt der Fehler. Ein else-Block hat keine Bedingung, die du ihm da aufzuzwingen versuchst. Einfach das "(chMapauswahl == 0)" wegnehmen oder aus dem else ein else if machen (was, wenn ich mir das Programm ansehe, aber kaum Sinn machen würde) und es sollte wieder funktionieren ;)
MfG
Jeoni
08/09/2013 14:41 ErawondA#3
Quote:
Originally Posted by Jeoni View Post
Code:
else (chMapauswahl == 0)
Hier liegt der Fehler. Ein else-Block hat keine Bedingung, die du ihm da aufzuzwingen versuchst. Einfach das "(chMapauswahl == 0)" wegnehmen oder aus dem else ein else if machen (was, wenn ich mir das Programm ansehe, aber kaum Sinn machen würde) und es sollte wieder funktionieren ;)
MfG
Jeoni
So, ich habe nun das else if versucht und danach die (chMapauswahl ==0) wegge macht und es hat beides nicht funktioniert.Hier ist der neue fehler:
Code:
			// Falsch Eingabe
			else
			{
				cout << "Falsch Einabe " endl; <-- Meint das davor noch ein ; soll, was aber unlogisch wäre.
			}
		}

	}

	return 0;
}
08/09/2013 14:42 .SkyneT.#4
Quote:
Originally Posted by ErawondA View Post
So, ich habe nun das else if versucht und danach die (chMapauswahl ==0) wegge macht und es hat beides nicht funktioniert.Hier ist der neue fehler:
Code:
			// Falsch Eingabe
			else
			{
				cout << "Falsch Einabe " endl; <-- Meint das davor noch ein ; soll, was aber unlogisch wäre.
			}
		}

	}

	return 0;
}
Vielleicht kein ; aber ein <<
08/09/2013 14:43 ErawondA#5
Habs nun raus :D
Code:
			// Falsch Eingabe
			else
			{
				cout << "Falsch Einabe " endl; vor dem endl; muss ein <<
			}
		}

	}

	return 0;
}
#closed
08/09/2013 15:55 Dr. Coxxy#6
außerdem schreit dein code geradezu nach einem switch anstatt dieser dauernden if... else if ... else blöcke.
08/09/2013 17:06 ErawondA#7
Quote:
Originally Posted by Dr. Coxxy View Post
außerdem schreit dein code geradezu nach einem switch anstatt dieser dauernden if... else if ... else blöcke.
Ich weiss :D
Die 4 Seiten habe ich gerade gelesen und auch angewant.
Nun sieht das alles viel übersichtlicher aus :mofo: