If Bedingung funktioniert nicht



  • Ich mit dem Buch "C++ für Spieleprogrammierer" gekauft und bin jetzt bei den If Bedingungen und Switch Cases. Allerdings funktioniert mein Code nicht so wie es soll. Denn egal was man eingibt, er gibt immer "Singleplayer wird geladen..." aus.

    #include <iostream>
    
    using namespace std;
    
    int main () {
    
    	cout << "Singeleplayer oder Multiplayer?\n";
    
    	char chrAbfrage; //S oder M
    	int nSpieleranzahl; 
    
    	cin >> chrAbfrage;
    
    	//Singleplayer
    	if (chrAbfrage == 'S' || 's') {
    		cout << "Singleplayer wird gestartet...";	
    	}
    
    	//Multiplayer
    	else if (chrAbfrage == 'M' || 'm') {
    		cout << "Wie viele Spieler?\nBis zu 4 Spieler\n";
    		cin >> nSpieleranzahl;
    
    		//switch case
    		switch (nSpieleranzahl) {
    
    			case (1): {	
    				cout << "Singleplayer wird gestartet..."; 
    				break;
    			} 	
    
    			case (2):
    			case (3):
    			case (4): {
    				cout << "Multiplayer wird gestartet...";
    				break;
    			}
    
    			default:
    				{ cout<< "Error"; }
    
    	} 
    	}
    
    	//Fehlermeldung
    	else {
    		cout << "Error.";
    	}
    
    }
    


  • if (chrAbfrage == 'S' || 's')
    

    Das kann so nicht funktionieren, es sollte

    if (chrAbfrage == 'S' || chrAbfrage == 's')
    

    sein.
    Steht das wirklich so im Buch?



  • Oh nein stand es nicht^^ Das war mein Fehler...
    Vielen Dank 🙂



  • if (tolower(chrAbfrage) == 's')
    

    http://www.cplusplus.com/reference/cctype/tolower/



  • KeneXXa schrieb:

    Denn egal was man eingibt, er gibt immer "Singleplayer wird geladen..." aus.

    Wo ist den der Teil vom Programm, der das ausgibt?


Anmelden zum Antworten