Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wprowadzanie Zmiennej w pętli

Ostatnio zmodyfikowano 2016-09-14 00:33
Autor Wiadomość
Piotrifek
Temat założony przez niniejszego użytkownika
Wprowadzanie Zmiennej w pętli
» 2016-09-14 00:19:26
C/C++
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ę?
P-151714
carlosmay
» 2016-09-14 00:33:48
Kiepski kod.
Pomijając to, dodaj kontrolę wczytywania do integar.
np.
C/C++
int number { };
while( !( std::cin >> number ) ) {
    std::cin.clear();
    std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' );
}
P-151715
« 1 »
  Strona 1 z 1