我正在尝试删除.txt
文件,但文件名存储在std::string
类型的变量中。问题是,程序事先不知道文件的名称所以我不能只使用remove("filename.txt");
string fileName2 = "loInt" + fileNumber + ".txt";
基本上我想做的是:
remove(fileName2);
然而,它告诉我,我不能使用它,因为它给了我错误:
从“std :: string”到“const char *”不存在合适的转换函数。
答案 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());