0

可能重复:
ifstream::open() 的 C++ 类型参数
C++ ifstream 错误使用字符串作为打开文件路径。

有什么问题

ifstream sourceFile;
sourceFile.open(filepath);

我得到了一些关于:

没有匹配的函数调用ifstream::open(string&)

怎么了?

ifstream sourceFile(filepath)

其中文件路径是一个字符串

4

3 回答 3

2

从 C++11 开始,iostreams 可以将 astring作为参数来命名要打开的文件——但这是在 C++11 中添加的,所以很多库还没有包含它。更新到最新版本的编译器/库可能会有所帮助(但话又说回来,它可能不会——我怀疑这种支持是否相当普遍)。

于 2012-10-23T04:45:31.817 回答
1

看起来filepath是一个stringOpen只接受原始指针。所以这样做 -Open(filepath.c_str());

于 2012-10-23T04:43:16.310 回答
0

它需要一个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 );

参考

于 2012-10-23T04:42:14.157 回答