class MostBought { //class in a .h file
private:
typedef struct node {
double moneySpent;
char Name[50];
node *next;
} * nodePtr3;
nodePtr3 head3;
nodePtr3 curr3;
nodePtr3 temp3;
nodePtr3 next3;
public:
MostBought();
void addMoney(double x, char Category[50]);
void PrintList();
};
MostBought::MostBought() { //everything else in main.cpp
head3 = NULL;
curr3 = NULL;
temp3 = NULL;
next3 = NULL;
}
void MostBought::addMoney(double x, char Category[50]) {
temp3 = head3;
while (temp3 != NULL) {
if (temp3->Name == Category) {
temp3->moneySpent = temp3->moneySpent + x;
}
else {
temp3 = temp3->next;
}
}
}
我在main()中调用addMoney是这样的 “addMoney(aa.Price,aa.Category)”其中aa是结构体的对象。 程序编译,但当我尝试使用其名称和值打印所有节点时,所有值都等于0。 出了什么问题?
答案 0 :(得分:1)
第4行的'(temp3-> Onoma == Katigoria)'测试不会出现语法错误,但可能无法按照您的预期执行操作。它不进行字符串比较,它比较两个内存地址是否相同。如果要查看两个字符串是否相等,请使用strcmp()或类似函数。