Problem z pętlą
Ostatnio zmodyfikowano 2014-03-19 20:45
tabupl Temat założony przez niniejszego użytkownika |
Problem z pętlą » 2014-03-19 20:15:10 Witam, właśnie chciałem wykonać zadanie z 1. lekcji na 2. poziomie, jednak kiedy w programie wpisuję liczbę niepoprawną, zapętla się to w ten sposób, że w nieskończoność wypisują się na ekranie polecenia "wpisz liczbe: ". Dlaczego tak się dzieje? (kiedy wpisuję liczbę poprawną wszystko działa jak należy, pętla się nie uruchamia po raz kolejny). Oto kod: #include <iostream>
int main() { int A; do { std::cout << "Podaj liczbe: "; std::cin >> A; std::cin.fail(); } while( std::cin.fail() ); std::cout << A; return 0; }
|
|
OczkoSX |
» 2014-03-19 20:18:16 Po co piszesz dwa razy fail? Wystarczy jedno przy warunku pętli. |
|
tabupl Temat założony przez niniejszego użytkownika |
» 2014-03-19 20:19:58 Niestety skasowanie "górnego" cin.fail() nie pomogło... |
|
kamilcv |
» 2014-03-19 20:23:13 s spróbuj napisać taki warunek: while( A != std::cin.fail() ); albo taki: while( A == std::cin.fail() ); już nie pamiętam za dobrze |
|
tabupl Temat założony przez niniejszego użytkownika |
» 2014-03-19 20:25:02 Dalej bez zmian niestety. |
|
kamilcv |
» 2014-03-19 20:25:59 a ten drugi co modyfikowałem? |
|
tabupl Temat założony przez niniejszego użytkownika |
» 2014-03-19 20:27:49 Spróbowałem zanim zobaczyłem. Wtedy wcale się pętla nie odpala, nieważne czy liczba jest poprawna, czy nie. |
|
leon_w |
» 2014-03-19 20:37:06 Nie czyścisz flagi błędów ani bufora. Poczytaj o cin.sync() i cin.clear() |
|
« 1 » 2 |