打开文件以在C++;,文件名字符串出现问题 我正在打开一个C++中的文件(Linux,Debian)。

打开文件以在C++;,文件名字符串出现问题 我正在打开一个C++中的文件(Linux,Debian)。,c++,linux,ifstream,C++,Linux,Ifstream,上述方法可行,但当我尝试时: string filename = "readme"; ifstream input (filename); 我得到了一个以error开始的错误页面:没有匹配的函数来调用… 为什么这不起作用?我如何使用字符串变量作为文件名输入?您可以使用: string filename = "readme"; /* Convert filename to C string of type const char* (null terminated) using c_str m

上述方法可行,但当我尝试时:

string filename = "readme";
ifstream input (filename);
我得到了一个以
error开始的错误页面:没有匹配的函数来调用…

为什么这不起作用?我如何使用字符串变量作为文件名输入?

您可以使用:

string filename = "readme";
/* Convert filename to C string of type const char* 
 (null terminated) using c_str method
*/
ifstream input (filename.c_str()); 
或者使用C++11标志

-std=c++11
-std=c++0x

参考:

您可以使用:

string filename = "readme";
/* Convert filename to C string of type const char* 
 (null terminated) using c_str method
*/
ifstream input (filename.c_str()); 
或者使用C++11标志

-std=c++11
-std=c++0x


Ref:

仅在C++11中添加了
ifstream
和接受
std::string
的朋友的构造函数,这意味着您应该使用符合C++11标准的库实现,或者至少使用一个支持特定功能的库实现

要能够在您的案例中使用
std::string
作为文件名,请使用:


此方法适用于较旧的非C++11编译器。

仅在C++11中添加了
ifstream
和接受
std::string
的朋友的构造函数,这意味着您应该使用符合C++11的标准库实现,或者至少使用一个支持特定功能的实现

要能够在您的案例中使用
std::string
作为文件名,请使用:

此方法适用于较旧的非C++11编译器

string filename = "readme";
ifstream input (filename.c_str());