Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Ja tez mam problem z kalkulatorem

Ostatnio zmodyfikowano 2012-06-16 14:54
Autor Wiadomość
zoranka
Temat założony przez niniejszego użytkownika
Ja tez mam problem z kalkulatorem
» 2012-06-15 23:57:47
Usiłuję napisać kalkulator.Piszę go stopniowo i włączam kolejne instrukcje po kolei.Na tym etapie nie jest jeszcze pełny, jeszcze nie dodałam instrukcji które by przerwały jego działania kiedy któraś z liczb będzie równa 0 więc nie pytajcie dlaczego ich nie ma.Mój program jest pewnie nieporadny (proszę nie śmiejcie się i nie krytykujcie za ostro) ale  w miarę do tej pory działa tak jak powinien,przynajmniej dopóki wpisuje się do niego 2 liczby tak jak powinno być. Niestety kiedy zamiast którejś z liczb wpisuję literę program zaczyna wariować. Chciałabym żeby w takim wypadku od nowa wypisywał nazwę liczby (a albo b) i pytał o nią. Ale on wypisuje nazwę liczby i ..... wypisuje ją w kółko zamiast przejść do pytania. Czy mógłby ktoś mnie naprowadzić co jest nie tak?


C/C++
# include <iostream>
int main()
{
    int a;
    int b;
    bool adobrze = 0;
    bool bdobrze = 0;
    std::cout << " \tKalkulator" << std::endl << std::endl;
    do
    {
        std::cout << "a" << std::endl << std::endl;
        std::cin >> a;
        adobrze = std::cin.good();
    } while( adobrze == 0 );
   
    std::cin.clear();
    std::cin.sync();
    do
    {
        std::cout << " \nb" << std::endl << std::endl;
        std::cin >> b;
        bdobrze = std::cin.good();
    } while( bdobrze == 0 );
   
    std::cin.clear();
    std::cin.sync();
    std::cout << "\n Wybierz działanie" << std::endl;
    std::cout << "\n1-dodawanie";
    std::cout << "\n2-odejmowanie";
    std::cout << "\n3-mnożenie";
    std::cout << "\n4-dzielenie";
    std::cout << "\n5-dzielenie z resztą" << std::endl << std::endl;
    int znak;
    std::cin >> znak;
    switch( znak )
    {
    case 1:
        std::cout << "\na+b=" << a + b;
        break;
    case 2:
        std::cout << "\na-b=" << a - b;
        break;
    case 3:
        std::cout << "\na*b=" << a * b;
        break;
    case 4:
        std::cout << "\na/b=" << a / b;
        break;
    case 5:
        std::cout << "\na%b=" << a % b;
        break;
    }
    return 0;
}
P-58549
OSA_PL
» 2012-06-16 00:32:43
Kod daj w
[cpp][/cpp]

Co do problemu:

C/C++
std::cin.clear();
std::cin.sync();
 to daj do środka tych pętli do while, bo tak to wraca do początku z zaśmieconym strumieniem.

P-58552
zoranka
Temat założony przez niniejszego użytkownika
» 2012-06-16 14:22:36
dzięki. Zrobiłam tak i teraz wszystko gra:)
P-58559
jankowalski25
» 2012-06-16 14:54:37
Jeśli problem rozwiązany, to zamknij temat.
P-58561
« 1 »
  Strona 1 z 1