I'm trying to make a program that asks for the file that they user would like to read from, and when I try to myfile.open(fileName)
I get the error: "no matching function for call to std::basic_ifstream<char, std::char_traits<char> >::open(std::string&)'
" at that line.
string filename;
cout<<"Enter name of file: ";
cin>>filename;
ifstream myFile;
myFile.open(filename); //where the error occurs.
myFile.close();
In the previous version of C++ (C++03), open()
takes only a const char *
for the first parameter, instead of std::string
. The correct way of calling it would then be:
myFile.open(filename.c_str());
In current C++ (C++11) that code is fine, though, so see if you can tell your compiler to enable support for it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With