![](/img/trans.png)
[英]ofstream returning error “No matching function to call std::basic_ofstream<char>::close(const char [14])”
[英]std::ofstream does not accept const char * for << operator
我已经将我的C ++项目从VS 2010升级到了2015,并且在编译时遇到了一些问题。 方法标题如下:
void CCodeGenerator::GenerateCode(const MachineExArray & AMachineExArray,
const MachineArrays & AMachineArrays,
std::ofstream & HeaderFile,
std::ofstream & SourceFile)
有一行:
std::string HeaderDefine = path(OutputFilename).filename().generic_string();
for (std::string::iterator Iter = HeaderDefine.begin(); Iter != HeaderDefine.end(); Iter++)
*Iter = toupper((unsigned char)*Iter);
HeaderDefine = "__" + HeaderDefine + "_H__";
HeaderFile << "#ifndef " << HeaderDefine << "\n"; // <-- This one
编译器在这里停止并说:
没有运算符“ <<”与这些操作数匹配。 操作数类型为:std :: ofstream << const char [9]
我很早以前就用C ++编写过,但是从我记得的情况来看, std::ofstream
非常自由,应该接受大多数简单类型作为输入。 哪里出问题了?
在开始的时候,我写了HeaderFile.
,立即将其标记为错误(红色下划线),并且注释说:“不允许使用不完整的类型”。
观察
“不允许使用不完整的类型”
。 错误。
#include <ostream>
int main()
{
std::ofstream HeaderFile;
}
也会给出这个错误,而这
#include <fstream>
int main()
{
std::ofstream HeaderFile;
}
在VS2015中编译。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.