C++ primer 习题练习:8.3~8.4

//********************************* //习题8.3 8.4 //********************************* #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; } //测试函数 习题8.4 int main() { double dval; //注意运行时刚开始的一切都在这个函数中执行 get(cin); //当键入ctrl+z时从get(cin)跳出,下面的语句表明这个流还能使用 cin>>dval; //重新使用恢复后的流 cout<<dval<<endl; return 0; }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值