请帮看一下这个小链表错在哪里?
这个链表我只输入了一个成员,但是输出时有问题。
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include "stdbool.h"
#include "stdlib.h"
#define SIZE 40
struct film
{
char title[SIZE];
int rating;
};
typedef struct film Item;
typedef struct node
{
Item item;
struct node * next;
}Node;
int main(void)
{
Node *current;
Item item;
puts("Enter first movie");
gets(item.title);
puts("Enter the rating <0-10>:");
scanf("%d", &item.title);
while(getchar() != '\n')
{
continue;
}
current = (Node *)malloc(sizeof(Node));
current->item = item;
current->next = NULL;
printf("%s %d\n", current->item.title, current->item.rating);
return 0;
}
int main(void)
{
Node *current;
Item item;
puts("Enter first movie");
gets(item.title);
puts("Enter the rating <0-10>:");
// scanf("%d", &item.title);
// scanf("%d", item.title);//字符串, 本身就是首地址,
scanf("%d", &item.rating);//看需求这你是要rating;
while(getchar() != '\n')
{
continue;
}
current = (Node *)malloc(sizeof(Node));
// current->item = item; //这个结构你没有重载= 不能直接用
memcpy(current->item, item, sizeof(Item));//用这个函数拷贝buf
current->next = NULL;
printf("%s %d\n", current->item.title, current->item.rating);
return 0;
}
1. scanf("%d", &item.title); -> scanf("%d", &item.rating);
2. current->item = item; -> memcpy(¤t->item, &item, sizeof(Item));
current->item = item;