Используйте getline.Разбить, если строка пуста.Затем преобразуйте строку в целое число.
for(std::string line;;)
{
std::cout << "Give an Integer: ";
std::getline(std::cin, line);
if (line.empty())
break;
int userInput = std::stoi(line);
foo(userInput);
}
std::stoi
вызовет исключение при ошибке, обработайте, как хотите.