Я должен проверить ввод в программе с исключениями ().
Я построил следующий код, и я могу скомпилировать без ошибок:
cin.exceptions(istream::failbit |istream::badbit);
do
{
try
{
getline(cin,uppg);
}
catch(istream::failure e)
{
cerr << "Exception i inläsning";
}
...
}while(...)
Дело в том, что …. я не знаю, как проверить этот код. Какой тип ввода я могу написать, чтобы получить failbit или badbit?
Согласно этому (Состояния ошибок потоков) failbit генерировать при неправильной последовательности ввода. Например, вы пишете что-то вроде:
int n = 0; cin >> n; и введите строку вместо числа.
int main(void)
{
int n = 0;
cin.exceptions(istream::failbit | istream::badbit);
try
{
cin >> n;
}
catch(istream::failure e)
{
cerr << "Exception" << endl;
}
return 0;
}
Других решений пока нет …