读取字符串值显示为 NULL
Reading string value appears as NULL
此程序在接收到输入 1
时,会接收来自用户的信息,如果输入 2
,它会显示目前已存储的内容。
问题是当您 select 2
在插入所需信息后,提供的名称显示为 NULL。
而不是
scanf("%[^\n]%*c", &OE1);
^^^
你需要写
scanf("%[^\n]%*c", OE1);
此声明
ptr -> OE[NAME_LEN]=OE1[NAME_LEN];
没有意义。
你需要写
#include <string.h>
//...
strcpy( ptr -> OE, OE1 );
这个 if 语句的这个功能
if(head==NULL)
ptr->next=NULL;
else
ptr->next=head;
一条语句即可完成
ptr->next = head;
还有这个声明
printf("%d %s %d\n",ptr->AM, ptr->OE[NAME_LEN], ptr->XS);
必须用这个代替
printf("%d %s %d\n",ptr->AM, ptr->OE, ptr->XS);
此程序在接收到输入 1
时,会接收来自用户的信息,如果输入 2
,它会显示目前已存储的内容。
问题是当您 select 2
在插入所需信息后,提供的名称显示为 NULL。
而不是
scanf("%[^\n]%*c", &OE1);
^^^
你需要写
scanf("%[^\n]%*c", OE1);
此声明
ptr -> OE[NAME_LEN]=OE1[NAME_LEN];
没有意义。
你需要写
#include <string.h>
//...
strcpy( ptr -> OE, OE1 );
这个 if 语句的这个功能
if(head==NULL)
ptr->next=NULL;
else
ptr->next=head;
一条语句即可完成
ptr->next = head;
还有这个声明
printf("%d %s %d\n",ptr->AM, ptr->OE[NAME_LEN], ptr->XS);
必须用这个代替
printf("%d %s %d\n",ptr->AM, ptr->OE, ptr->XS);