当前位置: 代码迷 >> 综合 >> 编写一函数,形参返回值都是istream类型...直到遇到EOF
  详细解决方案

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

热度:32   发布时间:2024-01-19 15:31:57.0

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的输出也不对...