我应该在带有例外()的程序中测试输入。 我构造了以下代码,我可以编译而不会出错:
cin.exceptions(istream::failbit |istream::badbit);
do
{
try
{
getline(cin,uppg);
}
catch(istream::failure e)
{
cerr << "Exception i inläsning";
}
...
}while(...)
事情是......我不知道如何测试这段代码。我可以编写什么类型的输入来获取failbit或badbit?
答案 0 :(得分:0)
根据此(Error states of streams)failbit在错误的输入序列时生成。例如,你写的东西如下: int n = 0; cin&gt;&gt; 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;
}