Zakaz wczytywania liter w kalkulatorze
Ostatnio zmodyfikowano 2013-05-10 17:33
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 ;/ #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; } } 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 :) |
|
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ć? |
|
akwes |
» 2013-05-09 15:20:49 |
|
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 :/ |
|
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). |
|
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. |
|
kubawal |
» 2013-05-09 16:33:32 int liczba; while( !cin << liczba ) cout << "Proszę podać liczbę!";
|
|
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ć :) |
|
« 1 » 2 3 |