【问题标题】:cout and printf show different results in displaying linked listcout 和 printf 在显示链表时显示不同的结果
【发布时间】:2011-11-16 02:59:34
【问题描述】:

我知道这个问题已经在这里解决了一百万次,而且我知道它与 printf 的类型安全(或者说缺乏它)有关,但我想要一些修复方面的帮助,因为 prof 完全拒绝 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;

【问题讨论】:

  • 能否请您发布每个版本的输出?并说明你看到了什么不同?
  • 您似乎还没有决定如何拼写变量名。这可能是一个开始。
  • &lt;&lt; 运算符周围留出空间。

标签: c++ linked-list printf cout


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    首先,去掉printf版本中制表符前后的空格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多