P1 R9 Błąd z zadaniem domowym
Ostatnio zmodyfikowano 2012-12-02 22:39
Informator1123 Temat założony przez niniejszego użytkownika |
P1 R9 Błąd z zadaniem domowym » 2012-12-02 22:01:44 Przy robieniu zadania domowego utworzyłem program o następującej treści: #include <iostream> int main() { float a; float b; float c; std::cin >> a; std::cin.clear(); std::cin.sync(); std::cin >> b; std::cin.clear(); std::cin.sync(); std::cin >> c; std::cin.clear(); std::cin.sync(); std::cout << "Liczba pierwsza to:" << a << std::endl; std::cout << "Wczytano? " << std::cin.good() << std::endl; std::cout << "Liczba druga to:" << b << std::endl; std::cout << "Wczytano? " << std::cin.good() << std::endl; std::cout << "Liczba trzecia to:" << c << std::endl; std::cout << "Wczytano? " << std::cin.good() << std::endl; return 0; } Problem leży w tym, że zawsze w potwierdzeniu wychodzi wynik pozytywny, niezależnie od tego co tam wpiszemy. Co robić? |
|
Mrovqa |
» 2012-12-02 22:36:42 Zauważ, iż czyścisz flagi błędu strumienia i potem je sprawdzasz. Zawsze powinno wypisać 1 :) Po wczytaniu, ale przed czyszczeniem flag błędu zapisz wynik wczytywania do zmiennej pomocniczej (typu bool). Potem tylko ją wypisz. |
|
whiskas |
» 2012-12-02 22:39:05 Dodaj zmienna typu bool np sukces1, sukces,,2 sukces3 i po każdym wprowadzeniu danych do zmiennej daj sukces=cin.good() i dopiero po tej linijce cin.clear() i cin.sync() |
|
« 1 » |