cout и printf показывают разные результаты при отображении связанного списка - PullRequest
1 голос
/ 15 ноября 2011

Я знаю, что проблема решалась здесь миллион раз, и я знаю, что она связана с безопасностью типов (или, скорее, ее отсутствием) в 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;

Ответы [ 2 ]

2 голосов
/ 15 ноября 2011

Просто удалите все амперсанды.Вам нужна реальная сделка, поэтому не применяйте оператор ссылки.

0 голосов
/ 15 ноября 2011

Прежде всего, удалите пробелы до и после вкладок в версии printf.

...