Program Kalkulator - po wybraniu odpowiedniej opcji, program nie kończy działania

0

Witam, w ramach rozgrzewki chciałem napisać pewien kalkulator i aż się zdziwiłem ze nie wychodzi jedna z części a mianowicie chodzi o opcje [5] Rezygnuj. Próbowałem ten spis robić za pomocą 5x if else lub za pomocą switch'a tak jak poniżej, błąd polega na tym ze jak wbijam opcje nr 5 to program nie kończy działania. Wie ktoś możne dlaczego?

#include <iostream>
using namespace std;

int main ()
{
    int d = 0,b = 0,dz=0,c=0;

    do
    {
        cout << "Wynik to: " << c <<endl;

        do
        {
            cin.clear();
            cin.sync(); 
            cout << "Wprowadz liczbe"<<endl;
            cin >> d >> b;
        } while (cin.fail());

        if (d == 0 || b == 0)  break;

        cout << "wybierz dzialanie:  " <<endl;
        cout << "[1] Dodawanie " <<endl;
        cout << "[2] Odejmowanie" <<endl;
        cout << "[3] Dzielenie" <<endl;
        cout << "[4] Mnożenie" <<endl;
        cout << "[5] Rezygnuj" <<endl;
        cin >> dz;

        switch (dz)
            {
        case '1' :
            c=d+b;
            break;
        case '2' :
            c= d-b;
            break;
        case '3' :
            c= d/b;
            break;
        case '4' :
            c= d*b;
            break;
        default :
            break;
        }
        if ( dz == '5') break;
    } while (1);

    system("pause");
    return 0;
}
0

Pomyliłeś int z charem.

0

Czyli jakbym usunął ' ' - przy każdej liczbie to wtedy by działało również poprawnie na int?

0

Zasadniczo, tak.

0

switch działa tylko z intami i enumami (które są jakby intami)

btw ciekawe gdzie się podziało Twoje zdziwienie przy opcjach 1-4 :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0