没有合适的从“std :: string”到“const char *”的转换函数

时间:2014-09-11 02:46:25

标签: c++ casting

我正在尝试删除.txt文件,但文件名存储在std::string类型的变量中。问题是,程序事先不知道文件的名称所以我不能只使用remove("filename.txt");

string fileName2 = "loInt" + fileNumber + ".txt";

基本上我想做的是:

remove(fileName2);

然而,它告诉我,我不能使用它,因为它给了我错误:

  

从“std :: string”到“const char *”不存在合适的转换函数。

3 个答案:

答案 0 :(得分:16)

remove(fileName2.c_str());

会做到这一点。

c_str()的{​​{1}}成员函数为您提供了可以使用的std::string C风格的字符串版本。

答案 1 :(得分:3)

您需要将其更改为:

remove(fileName2.c_str());

c_str()会将字符串作为const char *类型返回。

答案 2 :(得分:1)

如果您需要将std::string转换为const char*,则可以使用c_str()方法。

std::string s = "filename";
remove(s.c_str());