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?