Как вернуться к вводу данных, если допущена ошибка при вводе

253
15 февраля 2018, 15:34
std::cout<<"\t"<<"Ваш класс       -   " ;
std::cin>>klass;
Answer 1

Ну, если введено что-то не то - значит, сбросить поток, попросить ввести заново. Вот примерный набросок для целого числа в конкретном диапазоне (понятно, что для другого типа все может быть иначе):

int N;
for (;;) {
    std::cout << " Введите целое от min до max: " << std::flush;
    if ((std::cin >> N).good() && (min <= N) && (N <= max)) break;
    if (std::cin.fail()) {
        std::cin.clear();
        std::cout << "Неверный ввод, повторите.\n";
    } else {
        std::cout << "Число вне допустимого диапазона значений. Повторите ввод.\n";
    }
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
}
READ ALSO
Переносимость *_s функций (_CRT_SECURE_NO_WARNINGS)

Переносимость *_s функций (_CRT_SECURE_NO_WARNINGS)

При попытках скомпилировать код из серии

188
Ошибки при компиляции с библиотекой boost

Ошибки при компиляции с библиотекой boost

Не могу понять в чем проблемаВ код смотришь, ошибок нигде нет, они появляются при компиляции

272
осортировать слова по алфавиту (с++)

осортировать слова по алфавиту (с++)

Вводится последовательность слов (обязательно string) до встречи слова "stop" (Количество слов НЕ более 10)Вывести в алфавитном порядке

211
поиск подстроки без цифр

поиск подстроки без цифр

Дан строковый массив из n элементов, где n – натуральное числоНайти в этом массиве самую длинную подстроку, не содержащую цифры

248