Do..while lekcja 15 poziom 2
Ostatnio zmodyfikowano 2017-04-21 16:24
Panniikt Temat założony przez niniejszego użytkownika |
Do..while lekcja 15 poziom 2 » 2017-04-21 14:50:43 W pierwszym zadaniu trzeba podać liczbę i zabezpieczyć program przed wpisywaniem czegoś innego nie liczba. Mój kod wygląda tak: Jednak po wpisaniu litery pętla powtarza się cały czas i nie ma już możliwości naprawienia swojego błędu. Może mnie ktoś rozjaśnić gdzie robię błąd #include <iostream>
using namespace std;
int main() { int a; int b; do { cout << "Podaj jakas liczbe\n"; cin.clear(); cin.sync(); cin >> a; if( cin.fail() ) cout << "Podales litere/znak, a nie liczbe\n\n"; } while( cin.fail() ); cout << "Liczba ktora podales to: " << a << endl; system( "PAUSE" ); return 0; }
|
|
wilkoo13 |
» 2017-04-21 16:05:47 Na pewno? U mnie działa poprawnie, tyle że tzeba dodać #include <cstdlib> |
|
Panniikt Temat założony przez niniejszego użytkownika |
» 2017-04-21 16:16:33 Rzeczywiście działa chodź dopiero jak ten kod skopiowałem do Clion. Pierwotnie używałem Visual studio i tam niestety pętla wykonywała się w nieskończoność sama bez możliwości ponownego wpisana liczby. |
|
karambaHZP |
» 2017-04-21 16:24:30 cin.sync(); - nie oczyszcza od VS2015 (nie do tego służy ta metoda). W tym celu użyj metody cin.ignore() . |
|
« 1 » |