cin - дополнительные возможности
Собственно проблема достаточно продолжительная) Еще на далеком первом курсе, терзал препода как отловить в программе вводит ли пользователь правильные типы данных, то есть:
…
int number;
cin >> number;
…
Вот что будет если человек введет не целочисленное число, а например букву? Собственно как это отследить? Единственный ответ который я получил - записывать в строку и парсить… Скорость маленькая, сложность большая. Вообщем такой вариант событий меня не устраивал и я решил отодвинуть этот вопрос до лучших времен. Собственно ответ:
…
int number;
cin >> number;
if (!cin)
{
cout << “Input Error!” << endl;
return 1;
}
…
Если хотите продолжить выполнение дальше то можно банально очистить поток и продолжить ввод/работоспособность программы:
…
if (!cin)
{
cin.clear();
fflush(stdin);
}
…
Собственно, пока все. Продолжение следует =)