Zadanie 1 Rozdzial 17
Ostatnio zmodyfikowano 2016-07-27 17:04
RockerFeller Temat założony przez niniejszego użytkownika |
Zadanie 1 Rozdzial 17 » 2016-07-27 14:44:40 Witam otoz nie moglem wykonac zadania nie wiem co moge poprawic kod to #include <iostream> using namespace std;
int wczytajLiczbe() { int cyferka; do { cin >> cyferka; if( !cin.good() ) { cin.clear(); cin.ignore(); cout << "Nie podano liczby.\nProsze ponownie o podanie liczby."; } } while( cin.good() ); if( cin.good() ) { return cyferka; } }
int main() { cout << "Podaj liczbe: "; int liczba = wczytajLiczbe(); cout << "Podales liczbe: " << liczba << std::endl; return 0; } Pisalem to na telefonie i logow nie mam ale dzialanie tego kodu jest nastepujace. -Podano litere -> Prosi o podanie liczby. -Podano liczbe -> Nic nie robi i czeka az znowu cos podam. --------' Mam logi Podaj liczbe: input: gjjc Nie podano liczby. Prosze ponownie o podanie liczby. input: 467
input: fujvf Nie podano liczby. Prosze ponownie o podanie liczby. |
|
kistel66 |
» 2016-07-27 14:51:32 Zamień swój kod na coś takiego: #include <iostream> using namespace std;
int wczytajLiczbe() { int cyferka; while( !( cin >> cyferka ) ) { cout << "Nie podano liczby.\nProsze ponownie o podanie liczby."; cin.clear(); cin.sync(); } if( cin.good() ) return cyferka; }
int main() { cout << "Podaj liczbe: "; int liczba = wczytajLiczbe(); cout << "Podales liczbe: " << liczba << endl; return 0; }
Powinno śmigać |
|
RockerFeller Temat założony przez niniejszego użytkownika |
» 2016-07-27 14:56:09 Zmienilbym ale wole uzywac tylko rzeczy poznanych do tej pory a petli while jeszcze nie widzialem. A i logi mam zaraz dam.
---- A tamto std:: mam bo kopiowalem kod a kursu. Klamry stawiam z przyzwyczajenia. |
|
kistel66 |
» 2016-07-27 15:02:44 Pętla do while od samego while niewiele się różni.
W while na samym początku podajemy warunek, na podstawie którego pętla ma działać. Jeśli warunek jest nieprawdziwy - pętla się nie wykona.
Z kolei do... while najpierw wykonuje pętle, a dopiero potem sprawdza warunek. Czyli może on być niepoprawny, a pętla i tak wykona się chociaż raz. |
|
RockerFeller Temat założony przez niniejszego użytkownika |
» 2016-07-27 15:04:43 Tak myslalem bo wczesniej pisalem w lua a tamto podobne strasznie ale nie identyczne. ------------ Nie podano liczby. Prosze ponownie o podanie liczby. Nie podano liczby. Prosze ponownie o podanie liczby. Nie podano liczby. Prosze ponownie o podanie liczby. Komunikat po wpisaniu litery. I tak w nieskonczonosc. --------- Dzialanie petli rozumiem nawet for. Bo to bylo w lua taksamo jak if. |
|
kistel66 |
» 2016-07-27 15:26:14 |
|
RockerFeller Temat założony przez niniejszego użytkownika |
» 2016-07-27 15:33:07 Zobacz co sie stalo bo wpisaniu litery http://www11.zippyshare.com/v/8j5acmn1/file.html A przy liczbie normalnie. Nawet nie dalo sie zobaczyc co wpisalem bo petla sie zapetlila. |
|
carlosmay |
» 2016-07-27 15:41:21 while( !( cin >> liczba ) ) { cin.clear(); cin.ignore( numeric_limits < streamsize >::max(), '\n' ); }
|
|
« 1 » 2 |