Witam
Próbuję dodać walidację danych wejściowych w swojej funkcji. Wygląda ona tak:
void Builder::get_choice(){ choice = getch(); if((choice != '1') || (choice != '2')){ bool valid = false; while(valid != true){ cout << "Nieprawidlowy wybor. Wybierz ponownie"<< endl; choice = getch(); if((choice == '1') || (choice == '2')) valid = true; } } cout << "Ok"; }
Otóż problem jest taki, że gdy na klawiaturze wcisnę "1" lub "2", to pętla zawarta w ifie się wykonuje. Dopiero po drugim wciśnięciu "1" lub "2" funkcja wyświetla "Ok". Dodam iż zmienna "choice" jest typem "char" w klasie "Builder", czyli tak jak powinno być. Jak rozwiązać ten problem?