Syntaxfehler ')'



  • tag,

    So ich habe wieder ein problem, diesmal geht es um ein problem bei einem projekt mit einem partner. Wir wollen ein quiz programmieren, welches bis dato noch in den kinderschuhen steckt:

    #include <iostream>
    #include <string>
    using namespace std;
    
    void fragestellen (std::string f, std::string a, std::string b, std::string c, std::string d, char y);
    
    int main()
    {
    	int Anzahl = 0;
    	cout << "Willkommen beim Quiz ";
    	cout << "Version 0.1a\n";
        cout << "es sind derzeitig "<<Anzahl<<" Fragen vorhanden.\n"; 
    
    	cout << "was wollen sie machen?\n";
    	cout << "1=Quiz spielen,\n2=neue Fragen hinzufuegen,\n3=Beenden\n";
    
        cout << endl;
    	int menü;
    	cin >> menü;
        if (menü == 1)
    	    {
    			fragestellen("was ergibt 3+4?","3","4","7","8","c",)
    	    }
    	else if (menü == 2)
    	    {
    	    }
    	else if (menü == 3)
    		{
    	    cout << endl;
    		system("pause");
    	    }
    	else 
    	    {
            cout << "Falsche Eingabe";
    	    cin >> menü;
    	    }
    
    		return 0;
    }
    
    void fragestellen (std::string f, std::string a, std::string b, std::string c, std::string d, char y)
    {
    cout << f <<endl;
    cout << endl;
    cout << a<<endl;
    cout << endl;
    cout << b<<endl;
    cout << endl;
    cout << c<<endl;
    cout << endl;
    cout << d<<endl;
    cout << endl;
    char x;
    cin >> x;
    if (x == y)
    {
    	cout << "Richtig, 100 Punkte gehen auf dein Konto"<<endl;
    	cout << "Hier deine nächste Frage:"<<endl;
        cout << endl;
    }
    else 
    {
    	cout << "Leider falsch, "<<y<<" wäre richtig gewesen."<<endl;
    	cout << "50 Punkte werden von deinem Konto abgezogen."<<endl;
    	cout << "Hier deine nächste Frage:"<<endl;
    	cout << endl;
    }
    }
    

    Nun spukt der kompiler von visual studio 08 aber folgende warnmeldung aus:

    1>Kompilieren...
    1>Quiz.cpp
    1>c:\users\christian\documents\visual studio 2008\projects\quiz\quiz\quiz.cpp(27) : error C2059: Syntaxfehler: ')'
    

    Zuerst dachte ich " oh ien syntaxfehler, lässt sich bestimmt leicht beheben", doch nach vielem rumprobieren hab ichs immer nch nicht geschafft...

    edit: der syntaxfehler bezieht sich nicht auf zeile 27 sondern auf zeile 23



  • if (menü == 1)
            {
                fragestellen("was ergibt 3+4?","3","4","7","8",'c'); //; fehlte, char gehoert in '', nicht in "" und ein Komma zu viel
            }
    

    Und es ist besser, keine Umlaute zu benutzen (menue anstatt menü).



  • hab ich schon versucht, syntaxfehler bleibt

    edit: ok jetzt klappts^^ manchmal zweifel ich echt an mir selbst...



  • will keinen neuen thread aufmachen, deswegen frage ich hier:

    int main()
    {
    	zeigemenu();
    	int menueingabe;
    	cin>>menueingabe;
    
    	while(menueingabe != '1','2','3')
    	{
    		cout<<endl;
    		cout<<"falsche Eingabe"<<endl;
    		cout<<endl;
    		zeigemenu();
    		cin >>menueingabe;
    	}
    

    wenn ich das programm jetzt starte, und 2 eingebe sagt es "falsche Eingabe", ich hätte aber gerne das es erst"falsche Eingabe" ausgibt wenn ich was anderes als 1,2 oder 3 eingebe. Ich versteh nicht warum der das nicht so macht



  • Du suchst && bzw ||



  • wenn du von cin in einen int einließt konvertiert er es dir in die Zahl 2
    '2' ist aber ein char und wird beim konvertierten in einen int in seinen ascii wert umgewandelt ( was um die 40)

    versuch mal

    while(menueeingabe <1 || menueingabe > 3)
    

    das geht aber nur solange keine buchstaben eingegeben werden.

    (text->zahl konvertierung google: atoi)



  • vielleicht

    while(menueingabe!='1' and menueingabe!='2' and menueingabe!='3')
    


  • siehe

    int main()
    {
    	int zahl=0;
    	cin>>zahl;
    	cout<<zahl<<"\n"<<(int)'1'<<"\n"<<(zahl=='1')<<endl;
    }
    }
    


  • dank euch, fencers lösung hat auf anhieb geklappt 👍


Anmelden zum Antworten