Я работаю над простой проверкой данных как части ввода чисел в массив.Прямо сейчас это работает по большей части за исключением одного случая - когда я ввожу число, сопровождаемое буквой, выдается сообщение об ошибке, которое я создал, но число все еще вводится в массив.Еще больше меня смущает то, что он функционирует так, как задумано, когда я компилирую программу в XCode, но проблема, которую я описываю, проявляется только тогда, когда я компилирую программу с помощью g ++.Любые мысли будут очень цениться.Вот моя функция, которая, я думаю, дает мне проблему.
float getInput()
{
float input;
std::cin >> input;
if (std::cin.fail())
{
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::cout << "type char/str not allowed, enter int" << '\n';
return getInput();
}
else
return input;
}