Таким образом, вы можете проверить, является ли ввод числом или нет:
int a;
bool flag=false;
while (true)
{
flag=false;
std::string input;
std::cout << "Press some number: ";
std::getline(std::cin,input);
try
{
a = stoi(input);
}
catch(const std::exception& e)
{
std::cout <<"Invalid number" << std::endl;
flag=true;
}
if (!flag)
break;
Есть и другие способы сделать это, но я не связывался с векторами или другими вещами.