C++ &引用&燃气轮机&燃气轮机;未找到接受类型为';的左侧运算符的运算符;标准:ifstream';(或没有可接受的转换)“;
我试图创建一个动态数组,然后使用输入文件中的文本填充该数组,但我一直遇到这个错误。我找了几个小时的答案,但他们似乎都陷入了困境。我也不认为我错过了任何图书馆C++ &引用&燃气轮机&燃气轮机;未找到接受类型为';的左侧运算符的运算符;标准:ifstream';(或没有可接受的转换)“;,c++,C++,我试图创建一个动态数组,然后使用输入文件中的文本填充该数组,但我一直遇到这个错误。我找了几个小时的答案,但他们似乎都陷入了困境。我也不认为我错过了任何图书馆 int main() { // Parameter - Instance 1 Grocery g1("NA", 0, "NA"); g1.setName("Milk"); g1.setQuant("1"); g1.setUnit("Bottle"); Grocery g2(g1); // C
int main()
{
// Parameter - Instance 1
Grocery g1("NA", 0, "NA");
g1.setName("Milk");
g1.setQuant("1");
g1.setUnit("Bottle");
Grocery g2(g1); // Calls copy constructor
// Default constructor - Instance 3
//Grocery g3();
// Operator =
Grocery g4;
cout << "Operator = Running" << endl;
g4 = g2;
cout << g4.getName() << endl;
cout << g4.getQuant() << endl;
cout << g4.getUnit() << endl << endl;
// Operator <<
cout << "Operator<< Running" << endl;
Grocery g5("Salt", "1", "Teaspoon");
cout << g5 << endl;
//cout << g5.getName();
//cout << g5.getQuant();
//cout << g5.getUnit();
// Dynamic Array of Grocery
Grocery* groceryArray;
groceryArray = new Grocery[3];
ifstream inputFile;
inputFile.open("fileName.txt");
for (int i = 0; i < 3; i++)
{
inputFile >> groceryArray[i].setName;
cout >> groceryArray[i].setName;
}
inputFile.close();
delete[]groceryArray;
return 0;
}
intmain()
{
//参数-实例1
食品杂货g1(“NA”,0,“NA”);
g1.设置名称(“牛奶”);
g1.设定量(“1”);
g1.设定单位(“瓶”);
g2(g1);//调用复制构造函数
//默认构造函数-实例3
//杂货店g3();
//接线员=
食品杂货g4;
C++中的CUT< P>为了从用户直接输入到对象,必须应用>操作符参见下面的操作例>从字符串得到单项语句。
istream& operator>>(istream& input, Monomial& mon){
char str[SIZE];
cin.getline(str, SIZE);
mon.updateMonomialString(str, mon.coefficientNum, mon.degreeNum);
return input;
}
阅读有关操作员>>实施的更多信息
另一件事getter
应该返回字符串/信息等。
和setter
应该设置值/对象等。没有给出getXxxx
系列的声明,但我猜getXxxx
系列是函数,而右侧操作数应该是数据变量。请发布一个。getName
,getQuant
和getUnit
看起来像setter成员函数,你忘了给他们打电话了吗,或者他们真的是杂货店的变量名吗?
?需要查看杂货店的定义。完整的错误消息也会有帮助。@Kaldrr getName似乎是一个getter而不是setter。我认为OP是混乱的。这是为了让setter而不是getter抱歉。我还添加了杂货店的定义to帖子,并将在不知道mon.updateMonicalstring
规范的情况下插入主函数的其余部分。通常用于读入std::string
应该更好,因为没有明确的行大小限制。mon.updateMonicalstring是一个从用户输入中检索单项式的函数(char*),这是我学位上的一项作业,限制是不能只使用字符串字符。在程序中,我实际上在上一个函数中使用了运算符>>(我已添加到原始帖子中)。有人告诉我要同时使用运算符>>和运算符=,但不要使用缺少的运算符>>(句柄输入)之类的运算符seem,我知道您有运算符
istream& operator>>(istream& input, Monomial& mon){
char str[SIZE];
cin.getline(str, SIZE);
mon.updateMonomialString(str, mon.coefficientNum, mon.degreeNum);
return input;
}