编写一函数,形参返回值都是istream&类型...直到遇到EOF

来源:互联网 发布:linux vim 查看头文件 编辑:程序博客网 时间:2024/05/24 05:38

P249,习题8.3

// 标准IO库.cpp//P245#include <iostream>using namespace std;istream& fun(istream& in){  int n;      while(in>>n,!in.eof()){if(in.bad()) // 系统级别故障,不可恢复,流不能继续使用,只能退出throw runtime_error("IO stream corrupted");if(in.fail())// 错误,但可以恢复{cerr<<"bad data, try again"<<endl;in.clear(istream::goodbit);in.ignore(10,' ');// 流设置为goodbit后,可以继续输入了,但是会忽略掉输入的10个字符,                  // 这10个字符包括前面输入的错误的字符,所以一般要大点 in.igore(200,' ');              // 一次性把前面的错误输入(超过10个)忽略掉continue;}    cout<<n<<"******"<<endl;;    }  in.clear(); // 重置流的状态为有效状态return in;}void main(){    int v=-1;fun(cin);cin>>v;cout<<"v = "<<v<<endl;}


 

 ctrl + z + 回车 作为 windows 下单 EOF ...效果不怎么的, 不知道怎么回事.暂且不管,后面的v的输出也不对...

 

 

原创粉丝点击