我知道这个问题在这里被解决了一百万次,而且我知道这是关于printf的类型安全性(或者更确切地说是缺乏它),但我希望得到一些帮助,因为教授完全拒绝了C ++解决方案。 我有以下结构:
struct node
{
char author[40];
char title[40];
float price;
int stock;
nod *next;
};
我知道信息已正确存储,我已将问题缩小到显示功能:
void display()
{
nod *nod;
nod=p;
while(nod)
{
printf("%s \t %s \t %e \t%d", &node->auhtor, &node->title, &node->price, &node->stock);
node=node->next;}
printf("\n");
}
}
我需要更改它才能显示与
相同的结果cout<<nod->autor<<'\t'<<nod->titlu<<'\t'<<nod->pret<<'\t'<<nod->stoc<<endl;
答案 0 :(得分:2)
删除所有的&符号。你想要真正的交易,所以不要应用引用运算符。
答案 1 :(得分:0)
首先,删除printf版本中选项卡之前和之后的空格。