两个例子: 当我这样做时:
string filename = "apple";
remove(filename+".txt");
它会产生错误,但
string filename = "apple";
remove("apple.txt");
没有。为什么它不起作用,为什么我可以使用,例如以下内容:
string filename = "apple";
ifstream apple (filename+".txt");
答案 0 :(得分:2)
假设filename
的类型为std::string
,我可以想出几种解决问题的方法。
在评论中使用@Cornstalks的建议:
remove((filename+".txt").c_str());
在应用程序的命名空间中创建一个辅助函数并使用它。
namespace myapp
{
int remove(std::string const& filename)
{
return std::remove(filename.c_str());
}
}
myapp::remove(filename+".txt");