Для одного решения вы можете попробовать использовать isdigit
. Это проверяет, является ли ввод фактическим числом. Таким образом, вы можете сделать что-то вроде:
if(!(isdigit(x))){
cout << "That is not an acceptable entry. \n";
continue;
}
РЕДАКТИРОВАТЬ: я должен сказать, что после изучения этого, я понял, что для isdigit
, чтобы работать, запись должна быть символом. Однако, это все еще может работать, если вы преобразуете char в int после того, как обнаружите, что это int. Пример:
if(!(isdigit(x))){
cout << "That is not an acceptable entry. \n";
continue;
}
else{
int y = x - '0';
}
Это int y = x - '0'
может показаться странным; но это происходит потому, что вы должны преобразовать символ в целое число, и в соответствии с кодировкой ASCII, чтобы сделать это, вы вычтите символ «0» из желаемого числа. Вы можете увидеть это здесь: Конвертировать char в int в C и C ++