the variable chspielmode is being used without being initialized



  • Hi,
    ich habe gerade erst angefangen zu programmieren und bin auch neu in diesem Forum (ich hoffe das ist der richtige Bereich für mein Thema). Ich habe eine Fehlermeldung bekommen, mit der ich nichts anzufangen weiß: "Run-Time Check Failure #3 - The variable chspielmode is being used without being initialized". Die kommt leider erst wenn ich das Programm starte, es passiert wenn ich 1 Player oder 0 angebe. Hier mein Code:

    #include <iostream>
    
    using namespace std;
    
    //Hauptprogramm
    int main ()
    {
    	//Variablen
    	int spieleranzahl;
    	char chspielmode;
    
    	//Spieleranzahl eingeben lassen 
    	cout << "Wie viele Spieler? " << endl;
    	cin >> spieleranzahl;
    
    	//Spieleranzahl ungültig
    	if (spieleranzahl == 0)
    		cout << "Falsche Eingabe, bitte neustarten!" << endl;
    	//Spierleranzahl 1
    	else if (spieleranzahl == 1)
    		cout << "Spiel gegen den Computer\n";
    	//Spieleranzahl mehr als 1
    	else
    	{
    		cout << "Multiplayerspiel\n";
    		cout << "(t)eamspiel oder (f)ree for all?\n";
    		cin >> chspielmode;
    	}
    
    	//Teamspiel
    	if (chspielmode == 't')
    		cout << "Teamspiel, Spiel wird geladen...\a\n";
    	//Free for All
    	else if (chspielmode == 'f')
    		cout << "Free for All, Spiel wird geladen...\a\n";
    	//Falsche Eingabe
    	else
    		cout << "Falsche Eingabe, bitte neustarten" << endl;
    
    	return 0;
    }
    

    Ich hoffe ihr könnt mir helfen.
    LG

    /edit pumuckl: bb-codes und damit cpp-tags aktiviert



  • Hi,
    du solltest deine Englischkenntisse auffrischen.
    Die Fehlermeldung sagt doch sehr genau, was nicht passt:

    'chspielmode' wird benutzt, ohne das sie vorher initialisiert wurde.
    Das liegt daran, dass das Programm nicht zwingend diesen Teil

    else
    {
    cout << "Multiplayerspiel\n";
    cout << "(t)eamspiel oder (f)ree for all?\n";
    cin >> chspielmode;
    }
    

    durchläuft und chspielmode sonst nicht gesetzt wird.



  • Achso, danke, ich hab das nicht gesehen, ich musste eine Verschachtelung machen, ist mir jetzt dadurch aufgefallen, tut mir leid^^ ich bin noch Anfänger und hab nich dran gedacht :(. Vielen Dank!


Log in to reply