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

Zakaz wczytywania liter w kalkulatorze

Ostatnio zmodyfikowano 2013-05-10 17:33
Autor Wiadomość
Monster
Temat założony przez niniejszego użytkownika
Zakaz wczytywania liter w kalkulatorze
» 2013-05-09 14:55:29
Witam mam problem z kalkulatorem, ponieważ mogę wpisywać nawet litery ;/

C/C++
#include <iostream>

void wybor_funkcji()
{
    std::cout << "Wybierasz: " << std::endl;
    std::cout << "[1] - Dodawanie" << std::endl;
    std::cout << "[2] - Odejmowanie" << std::endl;
    std::cout << "[3] - Mnozenie" << std::endl;
    std::cout << "[4] - Dzielenie" << std::endl;
    std::cout << "[0] - Wyjscie z programu" << std::endl;
}

void funkcje()
{
    std::cout << "Dodawanie" << std::endl;
    std::cout << "Odejmowanie" << std::endl;
    std::cout << "Mnozenie" << std::endl;
    std::cout << "Dzielenie" << std::endl << std::endl << std::endl;
}

void dodac()
{
    std::cout << "Pierwsza cyfra: ";
    float a;
    std::cin >> a;
    std::cout << "Druga cyfra: ";
    float b;
    std::cin >> b;
    std::cout << "Wynik dodawania: " << a << " + " << b << " = " << a + b << std::endl << std::endl << std::endl;
}

void dodawanie()
{
    std::cout << "Korzystasz z programu dodawania" << std::endl;
}

void odjac()
{
    std::cout << "Pierwsza cyfra: ";
    float c;
    std::cin >> c;
    std::cout << "Druga cyfra: ";
    float d;
    std::cin >> d;
    std::cout << "Wynik odejmowania " << c << " - " << d << " = " << c - d << std::endl << std::endl << std::endl;
}

void odejmowanie()
{
    std::cout << "Korzystasz z programu odejmowania" << std::endl;
}

void mnozyc()
{
    std::cout << "Pierwsza cyfra: ";
    float e;
    std::cin >> e;
    std::cout << "Druga cyfra: ";
    float f;
    std::cin >> f;
    std::cout << "Wynik mnozenia " << e << " * " << f << " = " << e * f << std::endl << std::endl << std::endl;
}

void mnozenie()
{
    std::cout << "Korzystasz z programu mnozenia" << std::endl;
}

void dzielic()
{
    std::cout << "Pierwsza cyfra: ";
    float g;
    std::cin >> g;
    std::cout << "Druga cyfra: ";
    float h;
    std::cin >> h;
    if( h == 0 )
         std::cout << "Nie dziel przez 0!!!" << std::endl;
    else
         std::cout << "Wynik dzielenia: " << g << " : " << h << " = " << g / h << std::endl << std::endl << std::endl;
   
}


void dzielenie()
{
    std::cout << "Dorzystasz z programu dzielenia" << std::endl;
}

int main()
{
    std::cout << "W programie sa dostepne nastepujace opcje:" << std::endl;
    funkcje();
    int liczba;
    do
    {
        wybor_funkcji();
        std::cin >> liczba;
        switch( liczba )
        {
        case 1:
            dodawanie();
            dodac();
            break;
        case 2:
            odejmowanie();
            odjac();
            break;
        case 3:
            mnozenie();
            mnozyc();
            break;
        case 4:
            dzielenie();
            dzielic();
            break;
            default:
            break;
        } //switch
    } while( liczba != 0 );
   
    return 0;
}

Żeby nie dzielić przez 0 to sobie poradziłem, ale żeby nie można było wpisywać liter nie mogę sobie poradzić :/
Z góry thx :) 
P-82517
kubawal
» 2013-05-09 15:01:41
Zakaz wczytywania liter w kalkulatorze
O takim znaku to jeszcze nie słyszałem :D

Kod daj w [cpp]...[/cpp]

/edit:
ponieważ mogę wpisywać nawet litery
Rozwiń to. To nic nie mówi. Nie możesz litery wpisać? Gdzie? Kiedy? Może tak ma być?
P-82518
akwes
» 2013-05-09 15:20:49
P-82526
Monster
Temat założony przez niniejszego użytkownika
» 2013-05-09 16:15:58
Kubawal, chodzi mi, że w każdym momencie mogę wpisać tekst. A w kalkulatorze nie powinno się dać tego zrobić :).
Akwes, czytałem to już ale zbytnio nie czaje :/
P-82533
akwes
» 2013-05-09 16:25:32
Zablokować będzie Ci ciężko. Najprościej jest sprawdzać stan strumienia po każdym wczytaniu, jeżeli zostanie wczytany znak, którego nie chcemy, lub który powoduje błąd: to ogłaszamy, że taki znak nie będzie przez nas przyjęty i program się zakańcza (albo pyta ciągle o to samo do skutku).
P-82534
Monster
Temat założony przez niniejszego użytkownika
» 2013-05-09 16:31:45
Myślałem o takim czymś, że użytkownik wpisuje jakiś tekst, i wyświetli się "Proszę wpisać cyfry" Czy coś takiego.
P-82535
kubawal
» 2013-05-09 16:33:32
C/C++
// wczytywanie
int liczba;
while( !cin << liczba )
     cout << "Proszę podać liczbę!";

P-82537
Monster
Temat założony przez niniejszego użytkownika
» 2013-05-09 16:40:50
kubawal, ten kod nie działa, albo nwm gdzie go umiejscowić :)
P-82542
« 1 » 2 3
  Strona 1 z 3 Następna strona