【发布时间】:2020-07-15 13:17:50
【问题描述】:
以下代码不起作用并给出以下编译错误:
严重性代码描述项目文件行抑制状态错误 二进制表达式的无效操作数 ('std::wofstream' (aka 'basic_ofstream >'))
代码是:
template <class T>
void printtofile(std::string filename, int mode, T var, std::wstring msg)
{
wofstream outfile;
if (mode == 0) outfile.open(filename); else outfile.open(filename, ios::out | ios::app);
outfile << msg << L"\n";
outfile << var << L"\n";
outfile.close();
}
如果我注释掉以下行,则没有错误。
outfile << var << L"\n";
好的。奇怪和令人困惑的是,如果我添加具有不同参数的函数,如下所示,虽然我没有注释掉上面提到的行,但没有错误:
template <class T>
void printtofile(std::string filename, int mode, T var)
{
wofstream outfile;
if (mode == 0) outfile.open(filename); else outfile.open(filename, ios::out | ios::app);
outfile << var << L"\n";
outfile.close();
}
这不是一回事吗?这是怎么回事?
【问题讨论】:
-
@Ted Lyngmo 在编译第一行代码时出错:outfile
-
为了更清楚,我做了一个答案。
标签: c++ file printing wofstream