Я использую функцию, чтобы проверить, что мой ввод только целочисленный:
int input;
while (true)
{
std::cin >> input;
if (!std::cin)
{
std::cout << "Bad Format. Please Insert an integer! " << std::endl;
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
continue;
}
else
return input;
}
Однако при вводе целого числа, за которым следует символ, например. 3s , целое число принимается, и сообщение печатается.
Как я могу убедиться, что ввод в таком формате не принимается и не вводится в форме 4s 5, поэтому, когда после пробела стоит целое число.