Moja propozycja wykonania tego kodu:
void getNumbers(int& a, int& b)
{
bool isCorrect = false;
bool getFirst = true;
while(!isCorrect)
{
int tmp;
std::cin >> tmp;
if(std::isdigit(tmp))
{
std::cout << "Wprowadziłeś poprawną liczbę" << std::endl;
if(getFirst) { getFirst = false; a = tmp; }
else { isCorrect = true; b = tmp; }
}
else
{
std::cout << "Wprowadziłeś błędną liczbę, spróbuj ponownie" << std::endl;
}
}
}
Nie wiem tylko czy zadziała bo pisałem w notatniku i nie miałem jak sprawdzić.