ifstream :: open()函数使用字符串作为参数

Sem*_*ted 5 c++ string fstream ifstream

我正在尝试创建一个程序,询问用户想要读取的文件,当我尝试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();
Run Code Online (Sandbox Code Playgroud)

hma*_*tar 12

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

myFile.open(filename.c_str());
Run Code Online (Sandbox Code Playgroud)

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