Nieskończona pętla i blad przy czyszczeniu konsoli
Ostatnio zmodyfikowano 2014-10-20 09:16
gero1913 Temat założony przez niniejszego użytkownika |
Nieskończona pętla i blad przy czyszczeniu konsoli » 2014-10-19 23:50:21 Witam. Problem jest zapewne trywialny ale że wyjadaczem w programowaniu jeszcze nie jestem to proszę o pomoc kogoś kto bardziej ogarnia. #include <iostream> #include <cstdlib> #include <stdio.h> using namespace std;
int iloscrund; int main() { do { cout << "Ile rund chcialbys rozegrac w obecnej grze?" << endl; cin >> iloscrund; if( cin.fail() ) { cout << "Niestety wprowadziles niepoprawne dane" << endl; } } while( cin.fail() ); system( "cls" ); return 0; }
1 problem - przy wpisaniu niepoprawnych danych tworzy sie mi nieskonczona petla ktora ignoruje linijke : cin>>iloscrund; czyli jak raz wpisze niepoprawna ilosc to ciagle wywala tylko komunikaty i nie daje okazji sie poprawic 2 problem - przy wpisaniu poprawnych danych program sie kompiluje i przechodzi dalej z tym ze wywala blad : "sh: cls: nie znaleziono polecenia" Nie wiem czym jest to spowodowane i jak to naprawic. Dodam ze moj OS to Linux a kompilator to CodeBlocks. Z góry dziękuję za pomoc i przepraszam że zawracam wam głowę takimi pierdołami no ale większość rzeczy jest trudna zanim się jej nie nauczymy. |
|
Winner_Of_Death |
» 2014-10-20 00:04:20 |
|
gero1913 Temat założony przez niniejszego użytkownika |
» 2014-10-20 08:35:28 Ok,dziękuje.
A ma ktoś może pomysł co do problemu nr 1? |
|
Monika90 |
» 2014-10-20 09:16:51 po wystąpieniu błędu trzeba przywrócić strumień do poprawnego stanu, np. można tak #include <iostream> #include <limits>
int main() { using namespace std; int iloscrund; cout << "Podaj ilosc rund: "; while( !( cin >> iloscrund ) ) { cin.clear(); cin.ignore( numeric_limits < streamsize >::max(), '\n' ); cout << "Niepoprawne dane, podaj ilosc rund: "; } cout << "Ilosc rund to " << iloscrund << endl; }
|
|
« 1 » |