[C++] POZIOM 1, RODZIAŁ 9 - Zadanie domowe
Ostatnio zmodyfikowano 2016-12-08 09:33
Magic_Capybara Temat założony przez niniejszego użytkownika |
[C++] POZIOM 1, RODZIAŁ 9 - Zadanie domowe » 2016-12-01 10:49:16 Witam, Robiąc zadnie natrafiłem na następujący błąd - wszystko działa dobrze tak długo jak dane wejściowe są poprawne, a więc jest bezużyteczny bo jego zadaniem jest wyświetlenie informacji jeśli są niepoprawne. W przypadku wprowadzenia niepoprawnych danych (na przykład tekstu) program "przeskakuje" wprowadzenie następnych zmiennych :/ Kod źródłowy: #include <iostream>
using namespace std; int main() { float a, b, c; bool A, B, C; cin >> a; A = cin.good(); cin.clear(); cin >> b; B = cin.good(); cin.clear(); cin >> c; C = cin.good(); cin.clear(); cout << "Liczba pierwsza to: " << a << " Wczytano? " << A << "." << endl; cout << "Liczba druga to: " << b << " Wczytano? " << B << "." << endl; cout << "Liczba trzecia to: " << c << " Wczytano? " << C << "." << endl; return 0; }
Tak więc jeśli wprowadzę same liczby, to wszystko działa, a w innym przypadku wyświetla to, co zostało do tej pory wprowadzone, a resztę pomija i wyświetla "0" w miejsce innych zmiennych. Próbowałem dodać cin.sync po przypisaniu wartości dla każdej zmiennej bool i rzeczywiście jest lepiej, ale nadal nie działa tak jak bym chciał (w przyadku wpisania np. "123 asd" chciałbym aby zostało to zaklasyfikowane jako błędne, a przy zastosowaniu cin.sync za warość przyjmuje "123" i traktuje jako poprawne :/ Ktoś coś? |
|
Anim |
» 2016-12-01 11:56:35 Parę dni temu poruszałem podobny temat:
http://cpp0x.pl/forum/temat/?id=24029
Także miałem problemy z wprowadzaniem danych dłuższych niż 1-znakowe oraz z kontrolę tychże danych. |
|
karambaHZP |
» 2016-12-01 12:07:57 Napisz funkcję, która będzie sprawdzać wg twoich kryteriów wprowadzane dane i zwracać dokładnie to czego oczekujesz. Po prostu recznie filtruj zawartość bufora strumienia i recznie pozbywaj się tego co uważasz za błąd. Przydatne funkcje znajdzesz w pliku cctype. |
|
Magic_Capybara Temat założony przez niniejszego użytkownika |
» 2016-12-08 09:33:50 Okej, dzięki wielkie wszystkim :D Znalazłem mniej więcej to o co mi chodziło w temacie Anima.
Temat uważam za zamknięty. |
|
« 1 » |