cout和printf在显示链表时显示不同的结果

时间:2011-11-15 18:56:17

标签: c++ linked-list printf cout

我知道这个问题在这里被解决了一百万次,而且我知道这是关于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;

2 个答案:

答案 0 :(得分:2)

删除所有的&符号。你想要真正的交易,所以不要应用引用运算符。

答案 1 :(得分:0)

首先,删除printf版本中选项卡之前和之后的空格。