尝试将字符串传递给std :: ifstream作为参数

时间:2011-02-24 13:48:18

标签: c++

我正在尝试使用从矢量检索到的字符串将文件名传递给ifstream以便打开。

vector<string> files;

//Populate vector

std::ifstream ifile(files[0] ,std::ios::binary);

编译时返回:

错误:没有匹配函数来调用'std :: basic_ifstream&gt; :: basic_ifstream(std :: basic_string,std :: allocator&gt;&amp;,const std :: _ Ios_Openmode&amp;)*

如果我尝试将文件[0]转换为const char * first

vector<string> files;

std::string l = files[0];
const char *p;
p = l.c_str();
std::ifstream ifile(p ,std::ios::binary);

编译器返回:

错误:'l'未在此范围内声明

我在这里做错了什么?这是基本的,我很有信心。

1 个答案:

答案 0 :(得分:1)

试试这个:

std::ifstream ifile(files[0].c_str(), std::ios::binary);