Мы попытались найти эту проблему, но мы не нашли ответы. Если пользователь вводит строковую переменную, когда системе требуется целое число, как вы избегаете проблемы с использованием цикла while?пользователь вводит String вместо Int
{
int grade_var=0,grade_1=0,sum=0;
cout<<"Enter the number of grades you have:\t";
cin>>grade_var;
for(int i=1;i<=grade_var;i++)
Я не хочу, чтобы сделать петлю, а для моей программы есть много целых вставки и хочет знать, более простой способ, чтобы исправить, а не в то время как петли?
точно как вы «вернетесь» к коду «получить ввод», если введены плохие данные, БЕЗ петли? Вы можете просто вложить 'if (input is bad) {получить больше ввода {if (input is bad) {....}}' так глубоко, как вы хотите. но если вы проверите 'n' раз для плохих входов, кто-то будет вводить плохие вещи' n + 1' раз и обходить вашу проверку. Цикл намного проще. 'while (вход плохой) {get input}' is –
@MarcB: более уместно, 'do {ask input} while (input is bad)'. – usr2564301
Единственное решение, которое не включает в себя циклы, о которых я могу думать, помещает ваш вход в вспомогательную функцию и использует рекурсию: 'if (inputisbad) readinput()' – yizzlez