Probleme beim Compilieren



  • Hallo zusammen,
    ich habe folgendes Problem:

    Ich möchte meinen Quellcode Compilieren, jedoch gibt der Compiler einen
    Fehler aus.
    Der Fehler: "char ant = Abfrage();"(Zeile 17)

    Was ist daran Falsch?

    Würde mich über eure Hilfe Freuen.

    Das ist der dazugehörige Quelltext:

    #include <iostream>
    
    using namespace std;
    
    char Abfrage(); /* Abfrage der Übereinstimmung der Geratenen Zahl. */
    char Groesser(); /* Abfrage ob die Rate-zahl Größer ist als die Zuratende. */
    void Gewonnen(); /* Ausgabe der Gratulation. */
    
    int guess = 50; /* Globale User-eingabe-Variable, da von mehreren Funktionen Benutzt. */
    
    int main(){
    
    	unsigned int max = 100, min = 0; /* initalisierung von MAX-Wert, MIN-Wert, Rate-wert. */
    	bool geraten = false; /* initialisierung von Test-Variable für die ueberpruefung. */ 
    
    	do(
    		char ant = Abfrage();
    
    		if(ant == 'y'){			
    			Win(); /* Ausgabe der Gewinn-nachricht */
    			geraten = true; /* Variable geraten wird true zugewiesen, da Zahl erraten wurde. */
    	}else	
    		char ant = Groesser();
    
    		if(ant == 'y'){
    				min = guess; /* Da Zahl groesser kann MIN sich erhoehen. */	
    				guess += (max - min)/2; /* guess wird auf die haelfte der uebrig geblibenen zahlen erhoet. */
    		}else{
    				max = guess; /* Da Zahl kleiner kann MAX sich senken. */
    				guess -= (max - min)/2; /* guess wird auf die haelfte der uebrig geblibenen zahlen gesenkt */ 
    		}			
    	}
    
    	)while(geraten == false)
    
    	return 0;
    }
    
    char Abfrage(){
    
    	char ant;
    
    	System("cls"); /* Saeuberung der Konsole */
    
    	cout << "Ist Ihre Zahl: " << guess << " ?" << endl;
    	cout << "Antwort: ";
    
    	cin >> ant; /* Speicherung der User-Eingabe in ant */
    
    	return ant;
    }
    
    char Groesser(){
    
    	char ant;
    
    	cout << "Ist Ihre Zahl größer als" << guess << " ? \n";
    	cout << "Antwort: ";
    
    	cin >> ant;	
    
    	return ant;
    }
    
    void Win(){
    	System("cls"); /* Saeberung der Konsole */
    
    	cout << "Herzlichen Glückwunsch, Sie haben gewonnen!\n\n"
    
    	System("pause"); /* Warten auf beliebigen Tastendruck. */
    }
    


  • Wenn das Hilft der Compiler gibt folgendes aus:
    [Error] expected primary-expression before 'char'



  • do(
                 ...
         )while(geraten == false)
    

    Bist du sicher, dass du da die richtigen Klammern benutzt hast?



  • @hailaiter
    Klar stimmen die Klammern. Kennst du nicht die neue do-else-while Schleife? 🤡 🤡



  • Danke, hab das garniert gemerkt...
    Jetzt funktioniert alles einwandfrei.


Log in to reply