Test Cin исключения

Я должен проверить ввод в программе с исключениями ().
Я построил следующий код, и я могу скомпилировать без ошибок:

cin.exceptions(istream::failbit |istream::badbit);
do
{
try
{
getline(cin,uppg);
}
catch(istream::failure e)
{
cerr << "Exception i inläsning";

}
...
}while(...)

Дело в том, что …. я не знаю, как проверить этот код. Какой тип ввода я могу написать, чтобы получить failbit или badbit?

0

Решение

Согласно этому (Состояния ошибок потоков) 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;
}

0

Другие решения

Других решений пока нет …