C++中没有与这些操作数匹配的运算符



我复制/粘贴这个控制台应用程序,它是一个银行记录保存系统,我得到了一个错误的"gt"没有操作数的运算符;if (infile.read(reinterpret_cast<char*>(this), sizeof(*this)) > 0)

这与类型有关吗?我在某个地方读到了关于int需要过载之类的东西。无论如何,idk。

以下是部分代码:

void account_query::read_rec()
{
ifstream infile;
infile.open("record.bank", ios::binary);
if (!infile)
{
cout << "Error in Opening! File Not Found!!" << endl;
return;
}
cout << "n****Data from file****" << endl;
while (!infile.eof())
{
if (infile.read(reinterpret_cast<char*>(this), sizeof(*this)) > 0)
{
show_data();
}
}
infile.close();

ifstream::read()不返回读取的字符数。它返回对自身的引用。

另外,不要使用while (!infile.eof()):为什么循环条件(即while (!stream.eof())(中的iostream::eof()被认为是错误的?

相反,在读取ifstream后,测试它是否处于良好状态

if(infile) { ... }

由于infile.read(...)返回对infile的引用,这可能是一个修复方法:

cout << "n****Data from file****" << endl;
while (infile.read(reinterpret_cast<char*>(this), sizeof(*this)))
show_data();
}

相关内容

  • 没有找到相关文章

最新更新