关于输入输出流的一些条件状态有关问题
关于输入输出流的一些条件状态问题
#include <iostream>
using namespace std;
istream &get(istream &input){
int i;
while(input>>i,!input.eof()){
if(input.bad()){
cerr <<"读入错误!"<<endl;
}
if(input.fail()){
input.clear();
input.ignore(1,' ');
continue;
}
cout <<i<<" ";
}
input.clear();
return input;
}
int main()
{
istream &str(cin);
system ("pause");
return 0;
}
出自C++ prime 中文第四版P-249页,习题8.3:
编写一个函数,其唯一的形参和返回值都是istream&类型 ,该函数应一直读取流直到到达文件结束符为止 ,还应将读到的内容输出到标准输出中 ,最后 ,重设流使其有效 ,并返回到该流 .
我按照要求编写函数了 ,但不知道怎么调用,书上叫我用cin调用来测试所编写的函数 ,但是我调用了以后 ,完全不懂调用是什么情况?
请高手帮忙解释一下 ,谢谢!
------解决方案--------------------
istream &str(cin);
==>
get(cin);//这样就是调用
------解决方案--------------------
习题答案:
8.4:
int main()
{
double dval;
get(cin);
cin >> dval; //重新使用恢复后的流
cout<<dval<<endl;
return 0;
}
#include <iostream>
using namespace std;
istream &get(istream &input){
int i;
while(input>>i,!input.eof()){
if(input.bad()){
cerr <<"读入错误!"<<endl;
}
if(input.fail()){
input.clear();
input.ignore(1,' ');
continue;
}
cout <<i<<" ";
}
input.clear();
return input;
}
int main()
{
istream &str(cin);
system ("pause");
return 0;
}
出自C++ prime 中文第四版P-249页,习题8.3:
编写一个函数,其唯一的形参和返回值都是istream&类型 ,该函数应一直读取流直到到达文件结束符为止 ,还应将读到的内容输出到标准输出中 ,最后 ,重设流使其有效 ,并返回到该流 .
我按照要求编写函数了 ,但不知道怎么调用,书上叫我用cin调用来测试所编写的函数 ,但是我调用了以后 ,完全不懂调用是什么情况?
请高手帮忙解释一下 ,谢谢!
------解决方案--------------------
istream &str(cin);
==>
get(cin);//这样就是调用
------解决方案--------------------
习题答案:
8.4:
int main()
{
double dval;
get(cin);
cin >> dval; //重新使用恢复后的流
cout<<dval<<endl;
return 0;
}