gpt4 book ai didi

compiler-errors - 错误C2678 : binary '>>' : no operator found which takes a left-hand operand of type 'std::istream'

转载 作者:行者123 更新时间:2023-12-02 11:03:26 26 4
gpt4 key购买 nike

请帮助,以解决问题。错误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;
}

最佳答案

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定义之间。

关于compiler-errors - 错误C2678 : binary '>>' : no operator found which takes a left-hand operand of type 'std::istream' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27513221/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com