可能重复:
ifstream::open() 的 C++ 类型参数
C++ ifstream 错误使用字符串作为打开文件路径。
有什么问题
ifstream sourceFile;
sourceFile.open(filepath);
我得到了一些关于:
没有匹配的函数调用
ifstream::open(string&)
怎么了?
与
ifstream sourceFile(filepath)
其中文件路径是一个字符串
可能重复:
ifstream::open() 的 C++ 类型参数
C++ ifstream 错误使用字符串作为打开文件路径。
有什么问题
ifstream sourceFile;
sourceFile.open(filepath);
我得到了一些关于:
没有匹配的函数调用
ifstream::open(string&)
怎么了?
与
ifstream sourceFile(filepath)
其中文件路径是一个字符串
从 C++11 开始,iostreams 可以将 astring
作为参数来命名要打开的文件——但这是在 C++11 中添加的,所以很多库还没有包含它。更新到最新版本的编译器/库可能会有所帮助(但话又说回来,它可能不会——我怀疑这种支持是否相当普遍)。
看起来filepath
是一个string
。
Open
只接受原始指针。所以这样做 -Open(filepath.c_str());
它需要一个char* filename
而不是一个字符串作为参数。
sourceFile.open(filepath.c_str());
The Function is std::ifstream::open
void open ( const char * filename, ios_base::openmode mode = ios_base::in );
(参考)