需要帮助修复我的代码,不知道出了什么问题。我正在使用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
答案 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