C ++ remove函数:不接受字符串变量

时间:2014-12-29 18:59:52

标签: c++

两个例子: 当我这样做时:

string filename = "apple";
remove(filename+".txt");

它会产生错误,但

string filename = "apple";
remove("apple.txt");

没有。为什么它不起作用,为什么我可以使用,例如以下内容:

string filename = "apple";
ifstream apple (filename+".txt");

1 个答案:

答案 0 :(得分:2)

假设filename的类型为std::string,我可以想出几种解决问题的方法。

  1. 在评论中使用@Cornstalks的建议:

    remove((filename+".txt").c_str());
    
  2. 在应用程序的命名空间中创建一个辅助函数并使用它。

    namespace myapp
    {
        int remove(std::string const& filename)
        {
            return std::remove(filename.c_str());
        }
    }
    
    myapp::remove(filename+".txt");