请帮忙解决问题。错误C2678:二进制'>>' :找不到哪个运算符采用了类型' std :: istream'的左手操作数。 (或没有可接受的转换)出现在带有cin的行中
#include <iostream>
#include <string>
using namespace std;
struct Sales_data
{
string ISBN;
unsigned units_sold;
double revenue;
};
int main ()
{
Sales_data item;
while (cin >> item)
{
cout << item << endl;
}
system ("pause");
return 0;
}
答案 0 :(得分:0)
Sales_data
是您定义的自定义结构,因此默认情况下operator>>
和operator<<
没有重载,它将您的结构作为参数。你应该自己实现这些功能,它可能看起来像这样:
std::istream& operator>>(std::istream& stream, Sales_data& data) {
return stream >> data.ISBN >> data.units_sold >> data.revenue;
}
std::ostream& operator<<(std::ostream& stream, const Sales_data& data) {
return stream << data.ISBN << data.units_sold << data.revenue;
}
在Sales_data
声明和main
定义之间插入。