我有一个打开的输入文件f
,其中包含整数,我有一个整数变量i
。
我愿意:
cout << "going in, ";
while(f >> i){
cout << "made it in, ";
//do stuff
}
cout << "and out." << endl;
如果f
为空,则输出不是仅使条件失败并继续,而是:
going in, Segmentation fault: 11
为什么这种测试尝试如此不优雅地失败,并且只有在第一次失败时才失败?如果f
有一个或多个整数,它将按预期和预期工作。
我的建议是:
while( f>>i, !f.bad() )