#include "stdafx.h"
#include
#include
#include
using namespace std;
istream &f(istream &);
int _tmain(int argc, _TCHAR* argv[])
{
string filename="hello";
ifstream input;
input.open(filename.c_str(),ios::binary);
if(input.is_open())
{
cout<<"opened"<<endl;
}
if(!input)
if(input.bad())
cout<<"bad"<<endl;
if(input.fail())
cout<<"fail"<<endl;
return -1;
f(input);
system("pause");
return 0;
}
istream &f(istream &in)
{
string temp;
while(in>>temp,!in.eof())
{
if(in.bad())
throw runtime_error("IO stream corrupted");
if(in.fail())
{
cerr<<"bad data,try again!";
in.clear();
in.setstate(istream::eofbit);
continue;
}
cout<<temp<<endl;
}
in.clear();
return in;
}
代码如上,总是跳到文件打开失败语句,hello.txt文件我放在与exe文件同一个目录下。
百思不得其解啊?为什么呢?