【发布时间】:2011-02-24 13:48:18
【问题描述】:
我正在尝试使用从向量中检索到的字符串将文件名传递给 ifstream 以进行打开。
vector<string> files;
//Populate vector
std::ifstream ifile(files[0] ,std::ios::binary);
编译后返回:
错误:没有匹配函数调用 'std::basic_ifstream >::basic_ifstream(std::basic_string, std::allocator >&, const std::_Ios_Openmode&)*
如果我首先尝试将 files[0] 转换为 const char *
vector<string> files;
std::string l = files[0];
const char *p;
p = l.c_str();
std::ifstream ifile(p ,std::ios::binary);
编译器返回:
错误:'l' 未在此范围内声明
我在这里做错了什么?我敢肯定,这是一些基本而引人注目的东西。
【问题讨论】:
-
我没有重现您的第二个问题(剪切和粘贴您的代码并添加明显缺失的内容)。顺便说一句,您也可以使用
file[0].c_str()而不是 p。
标签: c++