以下是引用q18371528148在2018-6-22 11:06:49的发言:
哈哈大佬,还记的我吗?
我觉的可以这样弄
struct stud *creat(void)
{
struct stud *head,*p1,*p2;
char a; //用来消除%s的缓冲区
n=0;
p2=p1=(struct stud*)malloc(LEN);
printf("输入:");
scanf("%ld%s%c%c%d",&p1->num,p1->name,&a,&p1->sex,&p1->old);
head=NULL;
while(p1->num!=0)
{
n=n+1;
if(n==1)
head=p1;
else
p2->next=p1;
p2=p1;
p1=(struct stud*)malloc(LEN);
printf("Input:");
scanf("%ld%s%c%c%d",&p1->num,p1->name,&a,&p1->sex,&p1->old);
}
p2->next=NULL;
free(p1);
这里主要是利用char a来消除缓冲区
以下运行结果
写代码不要这么将就哈。