Wprowadzanie Zmiennej w pętli
Ostatnio zmodyfikowano 2016-09-14 00:33
Piotrifek Temat założony przez niniejszego użytkownika |
Wprowadzanie Zmiennej w pętli » 2016-09-14 00:19:26 int ruchy = 0; char m1; int x1 = 0; int y1 = 0;
while( ruchy < 50 ) { m1 = getch(); if( m1 < 'A' || m1 > 'J' ) { cout << m1 << endl; cout << "blad" << endl; } else { cout << m1; cin >> x1; cout << endl; } cout << "koniec " << m1 << " " << x1 << endl; }
Ideą tego fragmentu jest to że ma pobrać od użytkownika dwie wartości bez konieczności rozdzielania ich enterem więc pobiera jeden znak char a potem dowolnej długości integear wszystko działa dobrze do czasu gdy nie złamiemy schematu tzn jeżeli wprowadzę dane np "FFF" lub dana wykraczającą poza funkcję warunkową program od następnego przejścia pętli zacznie całkowicie pomijać wprowadzanie drugiej zmiennej niezależnie czy warunek if będzie czy nie będzie spełniony http://imgur.com/a/D87XR Wiem, że w kodzie jest wiele niepotrzebnego wypisywania ale szukałem momentu w którym wszystko się sypie krok po kroku Wyjaśni ktoś błąd logiczny proszę? |
|
carlosmay |
» 2016-09-14 00:33:48 Kiepski kod. Pomijając to, dodaj kontrolę wczytywania do integar. np. int number { }; while( !( std::cin >> number ) ) { std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); } |
|
« 1 » |