Funkcja getchar nie czeka na pobranie znaku
Ostatnio zmodyfikowano 2016-04-08 13:27
Critical Temat założony przez niniejszego użytkownika |
Funkcja getchar nie czeka na pobranie znaku » 2016-04-08 10:49:19 Witam Od dłuższego czasu walczę z tym problemem ale jednak nie potrafię sam go rozwiązać. Czy może ktoś powiedzieć gdzie jest błąd? #include <iostream> #include <cstdlib> #include <cstdio>
using namespace std;
float x, y; char wybor;
int main() { for(;; ) { cout << "Podaj 1 liczbe: "; cin >> x; cout << "Podaj 2 liczbe: "; cin >> y; system( "cls" ); cout << "MENU GLOWNE" << endl; cout << "1.Dodawanie" << endl; cout << "2.Odejmowanie" << endl; cout << "3.Mnozenie" << endl; cout << "4.Dzielenie" << endl; cout << "5.Koniec" << endl; cout << "Co chcesz zrobic(podaj numer 1-5): "; wybor = getchar(); cout << endl; switch( wybor ) { case '1': cout << "Wynik dzialania x + y to: " << x + y << endl; break; case '2': cout << "Wynik dzialania x-y to: " << x - y << endl; break; case '3': cout << "Wynik dzialania x*y to: " << x * y << endl; break; case '4': cout << "Wynik dzialania x/y to: " << x / y << endl; break; case '5': exit( 0 ); break; default: cout << "Niepoprawny wybor"; } } return 0; }
|
|
carlosmay |
» 2016-04-08 11:19:15 Wyczyść strumień przed użyciem funkcji getchar(). |
|
Critical Temat założony przez niniejszego użytkownika |
» 2016-04-08 11:43:55 Faktycznie, działa. Ale zauważyłem inny błąd: Dlaczego jeśli podam liczbę ze znakiem "," to automatycznie pomija wpisywanie drugiej liczby? Np. 3,5 A jeśli podam 3.5 to działa |
|
carlosmay |
» 2016-04-08 13:27:27 Dlaczego jeśli podam liczbę ze znakiem "," |
Bo używa się kropki (przecinka można gdy włączysz kodowanie na polskie znaki dla strumienia wejściowego). Obsługa strumienia wejściowego |
|
« 1 » |