Ergebnis 1 bis 9 von 9
  1. #1
    Mitglied
    Registriert seit
    Mar 2009
    Beiträge
    123

    Standard [C++] Syntax Error?

    Hey Leute!

    Hab vor kurzem mit dem Lernen von C++ angefangen...
    Da hab ich mir gedacht: Warum mach ich nicht so ein dummes Anfängerprogramm^^

    Also hab ich micht entschieden einen kleinen Taschenrechner in Form einer Konsolenanwendung zu programmieren.(Hab aber erst das Addieren gemacht)

    Jedoch bin ich auf ein Hinderniss gestoßen, das ich nicht verstehe.

    Code:
    #include <iostream>
    #include <string>
    using namespace std;
    
    
    int addieren()
    {
    	int additor1, additor2, summe;
    
    	cout << "Geben Sie bitte die erste Zahl ein: ";
    	cin >> additor1;
    	cout << "Geben Sie bitte die zweite Zahl ein: ";
    	cin >> additor2;
    
    	summe = additor1 + additor2;
    
    	return summe;
    }
    
    void main ()
    {
    	char rechnerart, beenden;
    	int ergebnis;
    
    	cout << "Wählen Sie bitte eine der 4 Rechenarten aus:" << endl;
    	cout << "a... Addieren" << endl;
    	cout << "s... Subtrahieren" << endl;
    	cout << "m... Multiplizieren" << endl;
    	cout << "d... Dividieren" << endl;
    	cout << endl;
    
    	beenden = '1';
    	do while(beenden != 'Y')
    	{
    		cin >> rechnerart;
    
    		switch(rechnerart)
    		{
    		case 'a':
    			ergebnis = addieren();
    			break;
    		}
    
    		cout << "Ergebnis = " << ergebnis << endl;
    		cout << "Programm schließen? (Y/N)";
    		cin >> beenden;
    	}
    }
    Das Problem das ich habe ist, dass mir der Compiler bei der letzten geschwungenen Klammer einen Syntaxerror ausspuckt, obwohl ich nicht der Meinung bin einen gemacht zu haben^^(Aber der Compiler ist in dem Punkt bestimmt klüger als ich)

    Der Fehler lautet:
    error C2059: Syntaxfehler: '}'

    Ich wollte fragen, ob sich jemand das kleine Programm anschaun kann und mir evtl. sagen, was ich falsch gemacht habe...(Bitte nur den gefragten Fehler ausbessern^^)


    Mit besten Grüßen
    Frame

  2. #2
    using namespace brain; Avatar von lukeelten
    Registriert seit
    Nov 2006
    Ort
    NRW
    Beiträge
    271

    Standard Re: [C++] Syntax Error?

    Es liegt an deiner Schleife.

    Code:
    do {
    
    
    } while (Bedingung);
    Das ist die richtige Syntax für do while Schleifen.

    Zudem bei einem Switch immer eine default Option geben, sonst wird das auch zur Schleife.
    Code:
    switch () {
    
    ...
    
    default:
    break;
    }

  3. #3
    Mr. Floppy is da

    Moderator

    Avatar von Larius
    Registriert seit
    Aug 2004
    Ort
    Österreich
    Beiträge
    4.913

    Standard Re: [C++] Syntax Error?

    Bei einer Do-While Schleife gehört das While nach der geschlossenen geschwungenen Klammer des Anweisungsblockes hin. Also in deinem Fall:

    Code:
    do 
    	{
    		cin >> rechnerart;
    
    		switch(rechnerart)
    		{
    		case 'a':
    			ergebnis = addieren();
    			break;
    		}
    
    		cout << "Ergebnis = " << ergebnis << endl;
    		cout << "Programm schließen? (Y/N)";
    		cin >> beenden;
    	}while(beenden != 'Y'); /*Achtung, hier brauchst du einen Strichpunkt!*/

  4. #4
    Mitglied

    (Threadstarter)


    Registriert seit
    Mar 2009
    Beiträge
    123

    Standard Re: [C++] Syntax Error?

    ^^

    Das ich da nicht selber draufgekommen bin

    Danke für eure schnellen Antworten! Hab schon gedacht ich bin ganz depatt geworden^^

  5. #5
    \o/ Avatar von sumisumi
    Registriert seit
    Jan 2008
    Beiträge
    4.039

    Standard Re: [C++] Syntax Error?

    PHP-Code:
    int additor1additor2summe
    meinst du summand1 und summand2?

  6. #6
    fanatic ;) Avatar von issen9
    Registriert seit
    Apr 2007
    Beiträge
    629

    Standard Re: [C++] Syntax Error?

    Zitat Zitat von lukeelten Beitrag anzeigen
    Zudem bei einem Switch immer eine default Option geben, sonst wird das auch zur Schleife.

    Wie soll man das verstehen?
    PHP-Code:
    int main()
    {
        
    int a 1;
        switch(
    a)
        {
        case 
    2std::cout << "2" << std::endl;
                break;
        }

        
    std::cout << "end" << std::endl;
        
    std::cin.get();
        return 
    0;

    gibt einfach "end" aus und exited.

  7. #7
    Mr. Floppy is da

    Moderator

    Avatar von Larius
    Registriert seit
    Aug 2004
    Ort
    Österreich
    Beiträge
    4.913

    Standard Re: [C++] Syntax Error?

    Also das eine Switch ohne Default zu einer Schleife wird hör ich heut zum ersten Mal - und wie Issen9 es am Code gezeigt hat ist es ein Mythos. Das Default ist ja nur dazu da, um alle nicht ausprogrammierten Fälle der Switch-Anweisung "einzufangen" und zu behandeln.

  8. #8
    using namespace brain; Avatar von lukeelten
    Registriert seit
    Nov 2006
    Ort
    NRW
    Beiträge
    271

    Standard Re: [C++] Syntax Error?

    Ich hatte mal gelesen, dass wenn switch kein passendes Element findet, es nicht aufhört zu suchen. Getestet hab ich es nie, trotzdem schadet meiner Meinung nach ein default nicht.

  9. #9
    Trashgigant ;)

    ex-Moderator

    Avatar von Scrion
    Registriert seit
    Jul 2000
    Ort
    Golgotha
    Beiträge
    7.571

    Standard Re: [C++] Syntax Error?

    Ich hatte mal gelesen, dass wenn switch kein passendes Element findet, es nicht aufhört zu suchen
    Das ist falsch.

  10.  
     
     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •