Zadanie domowe rozdział 15
Ostatnio zmodyfikowano 2020-02-26 22:12
Dagull Temat założony przez niniejszego użytkownika |
Zadanie domowe rozdział 15 » 2020-02-25 15:47:05 Potrzebuje pomocy przy wykonywaniu pierwszego zadania chciałem wykorzystać funkcje If.....else by ja poćwiczyć ale ostatecznie nie działa tak jak chce KOD: #include <iostream> #include <limits>
int main() { int x; bool p; std::cout << "Podaj liczbe calokowita: "; std::cin >> x; p = std::cin.fail(); std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); if( p = 0 ) { std::cout << "Podana liczba " << x << " Jest liczba calkowita."; return 0; } else if( p = 1 ) { do { std::cout << "To nie jest liczba calkowita prosze wpisac ponownie: "; std::cin >> x; p = std::cin.fail(); std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); } while( p = 0 ); std::cout << "Podana liczba " << x << " Jest liczba calkowita."; }
Chodzi o to że gdy podaje liczbe całkowitą np 3 to program zamiast wyświetlić liczbę tak jak każe mu if to odrazu przeskakuje do else if i przy ponownym wpisaniu liczby 3 już tego błędu nie ma i wychodzi z pętli oraz wypisuje liczbę dlaczego tak się dzieje ? |
|
pekfos |
» 2020-02-25 17:33:59 |
|
Dagull Temat założony przez niniejszego użytkownika |
Jeszcze jeden blad » 2020-02-26 14:09:25 Jeszcze jeden blad, wczesniej sam znalazlem blad z tym jednym "=" ale po poprawieniu tego program w pentli nie chce sie zatrzymac by wczytac nowa zawartosc x tylko samodzielnie wpisuje 0 Kod wyglada tak : else { do { std::cout << "\n Blad nie podales liczby calkowitej sprobuj jeszcze raz: "; std::cin >> x; p = std::cin.fail(); } while( p == 0 ); std::cout << "\n Podana liczba " << x << " Jest liczba calkowita."; }
|
|
mizie |
» 2020-02-26 15:01:21 |
|
Dagull Temat założony przez niniejszego użytkownika |
» 2020-02-26 16:56:04 Tylko ze pętla działa a jak dam while ( p==1 ) to program utknie w pętli i w kolko będzie wypisywał ze jest błąd i ani razu nie poczeka aż użytkownik poda mu liczbę tylko samodzielnie nad pisze zmienna x i da jej liczbę 0 a ze błędu nie ma czyli p będzie posiadać liczbę 0 pętla będzie wykonywać się w nieskaczonosc, a ja chce zrozumieć dla czego program nie czeka na liczbę od użytkownika tylko samemu nadpisuje ja...
|
|
pekfos |
» 2020-02-26 21:32:56 Gdy strumień jest w stanie błędu, wczytywanie danych kończy się błędem. Musisz dodać clear() i ignore(). |
|
Dagull Temat założony przez niniejszego użytkownika |
» 2020-02-26 22:12:58 Czyli usuniecie tego z kodu jednak bylo bledne teraz wiem na czym polegal moj blad i dlaczego powinienem po while dać p == 1 dzieki za pomoc :D
|
|
« 1 » |