读书人

为什么不一致也可以打开解决方案

发布时间: 2012-03-28 15:40:03 作者: rapoo

为什么不一致也可以打开
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

读书人网 >C++

热点推荐