[C++]Zmienne oraz czyszczenie bufora
Ostatnio zmodyfikowano 2013-02-19 16:11
oskarkxyz Temat założony przez niniejszego użytkownika |
[C++]Zmienne oraz czyszczenie bufora » 2013-02-19 15:54:16 Witam. Staram się zrobić kalkulator i nie za bardzo mi to wychodzi. Jeżeli wpiszę "a" za pierwszym razem poprawnie to bufor i tak się czyści i a = 0. Analogicznie jest ze zmienną "b". Jeżeli najpierw wpiszę np. wyraz "tak" w zmienną "a", a potem wpiszę liczbę to wszystko jest OK i "kalkulator" jak najbardziej liczy. Jakieś pomysły? [...] do { cout << "Podaj pierwsza liczbe" << endl; cin >> a; if( a = std::cin.fail() ) do { std::cin.clear(); std::cin.sync(); cout << "Sprobuj jeszcze raz!" << endl; cin >> a; } while( std::cin.fail() ); cout << "Podaj druga liczbe" << endl; cin >> b; if( b = std::cin.fail() ) do { std::cin.clear(); std::cin.sync(); cout << "Sprobuj jeszcze raz!" << endl; cin >> b; } while( std::cin.fail() ); [...]
Nie wydaje mi się, żeby był potrzebny cały kod, ale w razie czego to mogę podrzucić. |
|
Berux |
» 2013-02-19 16:02:35 do { cout << "Podaj pierwsza liczbe" << endl; cin >> a; if( a = std::cin.fail() ) do { std::cin.clear(); std::cin.sync(); cout << "Sprobuj jeszcze raz!" << endl; cin >> a; } while( std::cin.fail() ); cout << "Podaj druga liczbe" << endl; cin >> b; if( b = std::cin.fail() ) do { std::cin.clear(); std::cin.sync(); cout << "Sprobuj jeszcze raz!" << endl; cin >> b; } while( std::cin.fail() );
w if'ie (tym pierwszym i drugim) masz przypisanie do zmiennej a/b wyniku wprowadzania liczby(czy wprowadzanie się powiodło, czy nie) jako liczbę całkowitą (0 lub > 0),więc.. Użyj zmiennej bool (osobnej), aby sprawdzać czy wprowadzanie się powiodło. |
|
oskarkxyz Temat założony przez niniejszego użytkownika |
» 2013-02-19 16:11:21 W życiu bym na to nie wpadł. Dziękuję Ci :)
@@edit utworzyłem zmienne bool aczysukces bool bczysukces
następnie zamieniłem a = std::cin.fail() na aczysukces = std::cin.fail() i analogicznie ze zmienną b.
To tak tylko gdyby ktoś potrzebował pomocy to może tutaj zajrzeć :) |
|
« 1 » |