ofstream返回错误“没有匹配的函数来调用std :: basic_ofstream <char> :: close(const char [14])”

时间:2016-09-14 19:35:45

标签: c++ c++11 ofstream

需要帮助修复我的代码,不知道出了什么问题。我正在使用C ++ 11,尝试通过单独编写每个结构来将向量写入文件。返回错误的代码部分是:

string craigSave = "craigSave.txt";
ofstream file(craigSave.c_str());
file.open("craigSave.txt");
for (int i=0; i<finalVector.size(); i++){
    file << finalVector[i]<<endl;
}
file.close("craigSave.txt");
cout<<"Thanks for shopping!"<<endl;
done = true;

返回的错误位于“file.close”行,并且是:

  

错误:没有匹配函数来调用'std :: basic_ofstream :: close(const char [14])'

我对这个错误的研究似乎指出需要使用char *作为参数而不是字符串,但我使用C ++ 11,所以它应该接受字符串。另外奇怪的是file.open行没有错误,因为所有的研究都显示错误存在,而不是在file.close

1 个答案:

答案 0 :(得分:4)

只需使用file.close();,就无需再次传递文件名。

请参阅http://www.cplusplus.com/reference/fstream/ofstream/close/

此外,ofstream是RAII对象,这意味着一旦ofstream对象超出范围,该文件将自动关闭(参见do I need to close a std::fstream?):

{
    ofstream out("name");
    // do something with out...
} // out.close is called automatically