Thema: [C++] Syntax Error?
-
20. 01. 2010, 21:59 #1Mitglied
- Registriert seit
- Mar 2009
- Beiträge
- 123
[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.
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)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; } }
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
-
20. 01. 2010, 22:04 #2
Re: [C++] Syntax Error?
Es liegt an deiner Schleife.
Das ist die richtige Syntax für do while Schleifen.Code:do { } while (Bedingung);
Zudem bei einem Switch immer eine default Option geben, sonst wird das auch zur Schleife.
Code:switch () { ... default: break; }
-
20. 01. 2010, 22:04 #3
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!*/
-
20. 01. 2010, 22:06 #4Mitglied
(Threadstarter)
- Registriert seit
- Mar 2009
- Beiträge
- 123
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^^
-
20. 01. 2010, 22:39 #5
Re: [C++] Syntax Error?
meinst du summand1 und summand2?PHP-Code:int additor1, additor2, summe;

-
21. 01. 2010, 13:11 #6
-
21. 01. 2010, 13:24 #7
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.
-
21. 01. 2010, 16:30 #8
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.
-
21. 01. 2010, 16:33 #9
Re: [C++] Syntax Error?
Das ist falsch.Ich hatte mal gelesen, dass wenn switch kein passendes Element findet, es nicht aufhört zu suchen
-


Zitieren

mehr lesen...







FoWL: Unterstützungserklärung für...
Heute, 12:14 in gulli:news