为什么不一致也可以打开
int filetovector(string filename,vector<string>& v1)
{ifstream infile(filename.c_str());
string s;
if(!infile){cerr<<"文件打开错误"<<endl;}
while(getline(infile,s))
v1.push_back(s);
infile.close();
if(infile.eof())cerr<<"2"<<endl;return 2;
if(infile.bad())cerr<<"3"<<endl;return 3;
if(infile.fail())cerr<<"4"<<endl;return 4;
}
以下为调用此函数:while(cin>>filename)
filetovector(filename,v1);
本意:当输入的文件名和已经存放的文件名一致时 利用容器存放
问题:不管输入什么文件名(filename) 都会成功调用此函数 存入容器
多谢指教
[解决办法]
首先要看你调用这个函数的地方,再次if(!infile){cerr<<"文件打开错误"<<endl;}如果这儿打开错误了,那么就返回吧改成下面的
- C/C++ code
if(!infile){ cerr<<"文件打开错误"<<endl; return 0;}
[解决办法]
当输入的文件名和已经存放的文件名一致时 利用容器存放
没看见你判断文件名是否一致的代码啊
[解决办法]
代码贴全了拿过来看看吧!青年!
[解决办法]
http://panpan.blog.51cto.com/489034/101625
去看下这个帖子,希望对你有所帮助
[解决办法]
if (!infile.is_open())
{
{cerr<<"文件打开错误"<<endl;return 1;}
}
[解决办法]
没return