我只是想知道,无论如何,你可以让你的用户输入一个文件的位置时,试图使用流?
我想做什么:
int main()
{
ifstream instream;
string file_location;
cout << "Enter in file location: " << endl;
cin >> file_location;
instream.open(file_location);
}
所以我想让他们输入文件位置但是程序不会编译
我得到的错误信息是:
没有匹配的函数调用'std::basic_ifstream>::open(std::string&)'
使用instream.open(file_location.c_str());
。
您的想法是正确的,但是您的类型有点不正确。open
接受const char*,而不是std::string,因此您需要提供该字符串包含的const char*。std::string的c_str()
方法将返回代表std::string的const char*。
instream.open(file_location.c_str());