[Lekcja 9] Program nie pozwala wpisać trzeciej liczby
Ostatnio zmodyfikowano 2012-01-30 17:54
heniu_1 Temat założony przez niniejszego użytkownika |
[Lekcja 9] Program nie pozwala wpisać trzeciej liczby » 2012-01-29 23:46:20 Program działa poprawnie dopóki nie wpisze się błędnych danych. Nie potrafię znaleźć błędu, który za to odpowiada. Czy ktoś mógłby rzucić na to okiem? #include <iostream> int main() { float l1, l2, l3; bool a, b, c; std::cout << "Podaj pierwszą liczbę: "; std::cin >> l1; a = std::cin.good(); std::cin.clear(); std::cin.sync(); std::cout << "Podaj drugą liczbę: "; std::cin >> l2; b = std::cin.good(); std::cin.clear(); std::cin.sync(); std::cout << "Podaj trzecią liczbę: "; std::cin >> l3; c = std::cin.good(); std::cin.clear(); std::cin.sync(); std::cout << "Pierwsza liczba to: " << l1 << std::endl; std::cout << "Wykonano? " << a << std::endl; std::cout << "Druga liczba to: " << l2 << std::endl; std::cout << "Wykonano? " << b << std::endl; std::cout << "Trzecia liczba to: " << l3 << std::endl; std::cout << "Wykonano? " << c << std::endl; return 0; }
|
|
Dark |
» 2012-01-30 00:05:50 a masz jakieś warunki na błędne dane? Nie wydaje mi się |
|
heniu_1 Temat założony przez niniejszego użytkownika |
» 2012-01-30 17:34:33 Raczej nie chodzi o żadne warunki, bo do 9 lekcji nie ma mowy o czymś takim :( |
|
pekfos |
» 2012-01-30 17:38:37 spróbuj tego: cin.ignore(); cin.clear(); cin.sync() Pewnie wpisujesz złe nieprawidłowe dane(część zostaje w strumieniu). |
|
heniu_1 Temat założony przez niniejszego użytkownika |
» 2012-01-30 17:48:36 Dzięki za pomoc, ale przejrzałem jeszcze raz lekcję i znalazłem błąd :) Funkcja nie działa pod Linuksem. Wystarczyło ją zamienić na std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' );
|
|
pekfos |
» 2012-01-30 17:54:02 No to close. |
|
« 1 » |