这是c++ primer上的一道题,我以前对文件操作都是用C语言的方法进行,对这个流基本上没个概念,甚至都读不懂题
请各路高手帮我写个程序框架,或者分析也行,叫我干什么,函数是写成下面这样吗?
istream& process_input(istream& is);
我就有点奇怪既然形参是引用了,还返回它干什么,似乎没有必要
请大家不吝赐教,谢谢
感谢二楼三楼的回复,我也是像三楼这么写的。。用vector<string>保存,不过打不出来。。,
看来我的理解还是有点靠谱的,谢谢你们
下面是我自己的函数,大家帮我看看哪出错了,打不出来
istream &process_input(istream& is)
{
string str;
vector<string> svec;
while (is>>str,!is.eof())
{
cout<<"正在进行读入操作,请稍候..."<<endl;
if (is.bad())
{
throw runtime_error("该文件已经损坏,不可读取!");
}
if (is.fail())
{
cerr<<"有一个错,重试"<<ends;
is.clear();
continue;
}
svec.push_back(str);
}
cout<<"已经读入文件,现在将其打印出来"<<endl;
for (std::vector<string>::const_iterator it=svec.begin();it!=svec.end();++it)
{
cout<<*it<<" ";
}
cout<<endl;
return is;
}
我自己测试的时候使用ifstream绑定一个txt文件,打不出来。。