6

我正在尝试制作一个程序来询问他们用户想要读取的文件,当我尝试时myfile.open(fileName)我得到错误:“没有匹配的函数调用std::basic_ifstream<char, std::char_traits<char> >::open(std::string&)'”在该行。

string filename;
cout<<"Enter name of file: ";
cin>>filename;
ifstream myFile;
myFile.open(filename); //where the error occurs.
myFile.close();
4

1 回答 1

12

在以前版本的 C++ (C++03) 中,第一个参数open()仅采用 a ,而不是. 调用它的正确方法是:const char *std::string

myFile.open(filename.c_str());

不过,在当前的 C++ (C++11) 中,该代码很好,所以看看你是否可以告诉你的编译器启用对它的支持。

于 2013-03-02T22:00:32.093 回答