Kleiner Taschenrechner

  • Aufgabe:
    Entwickeln Sie eine Konsolenanwendung "Taschenrechner", welche nach Eingabe einer ersten Zahl a, des Rechenzeichens (+,-,* oder /) und einer zweiten Zahl b das Ergebnis oder ggf. eine Fehlermeldung ausgibt.

    Hier mein Quelltext:


    folgendes Problem: Nach der Eingabe der ersten Zahl und dem Operator (+,-,*,/) erscheint gleichzeitig:
    Geben sie die zweite Zahl ein Falscher Operator

    Könnte mir jemand sagen warum das so ist?

    Einmal editiert, zuletzt von The User (15. Oktober 2009 um 21:00)

  • Tach!

    Wenn du einen Integer hast (op), so werden bei der Eingabe normale Ziffern und evtl. ein Vorzeichen erwartet. Du gibst allerdings ein Zeichen ein. Der Operator landet in einem undefinierten Zustand (er wurde nie zugewiesen) und cin gerät in einen Fehlerzustand, sodass weiter Eingaben nicht abgewartet werden. Deshalb solltest du als Typen für op char (Zeichen) wählen, dann kannst du ein beliebiges Zeichen eingeben. Käme es auf besondere Stabilität an, solltest du die Variablen entweder initialisieren oder prüfen, ob Eingabefehler aufgetreten sind (das machst du mit "if(!cin)", aber ich vermute, dass das an dieser Stelle weniger wichtig ist.

    Ach ja: Verwende bitte die [ code ] - Tags.

    Viele liebe Grüße
    The User

  • Hallo,

    vielen dank, war wirklich nur die Umwandlung von int in char.

    Hier der funktionierende code:

    -close-