64,282
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
std::istream& get(std::istream &in)
{
int ival;
while (in>>ival,!in.eof())//注意逗号表达式,前一个的返回值被忽略了
{
if (in.bad())//出现系统级故障
{
throw std::runtime_error("IO stream corrupted");
}
if (in.fail())//出现可恢复错误
{
std::cerr<<"bad data, try again/n";
in.clear();//恢复流
in.ignore(200,' ');//跳过类型非法的输入项
continue;
}
//读入正常
std::cout<<ival<<" ";
}
in.clear();
return in;
}
cin.ignore(200,' ' );//清除流空格之前的字符