Aquí te dejo una función que termina solamente si lo que tecleaste fue un numero.
Adaptalo para que limites los rangos. O crea otra función en base a eso para limitar los rangos.
Código C++:
Ver original#include <iostream>
#include <sstream>
int get_number() {
std::string str;
int num;
std::istringstream iss;
do {
iss.clear();
std::getline(std::cin, str);
iss.str(str);
iss >> num >> std::ws;
} while(iss.fail() && !iss.eof());
return num;
}
int main () {
char line[15];
int num;
std::cout << "Enter a number between 0 and 100" << std::endl;
num = get_number();
return 0;
}