64,639
社区成员
发帖
与我相关
我的任务
分享
stu* input(stu *head)
{
stu *p1=NULL,*p2=NULL;
int n=0;
p1=(stu *)malloc(len);
p2=p1;
if(p1==NULL)
{
printf("对不起,节点空间申请失败");
return NULL;
}
if(head==NULL)
head=p1;
else
{
printf("请开始输入学生信息\n");
printf("输入格式(学号 姓名 性别(m/w) C成绩 英语成绩)\n");//此处没有输入p1->ID
while(p1->ID!=0)
{
printf("请输入第%d个学生信息:",n+1);
scanf("%d",&p1->ID);
scanf("%s",p1->name);
getchar();
scanf("%c",&p1->sex);
scanf("%d",&p1->C);
scanf("%d",&p1->Eng);
getchar();
p1->total=p1->C+p1->Eng;
n++;
if(p1->ID==0)
{
p1->next=NULL;
return head;
}
else
{
p2=p1;
p1=(stu *)malloc(len);
p2->next=p1;
}
}
}
}
void writetofile(stu *head)
{
stu *p;
p=head;
if((fp=fopen("D:\\student.txt","a"))==0)
{
printf("文件打开失败");
exit(0);
}
do{
fwrite(&p,len,1,fp);printf("数据已经成功写入D:\\student.txt中");
p=p->next;
}while(p->next=NULL);//此处应该是!=
printf("数据已经全部成功写入D:\\student.txt中");
}
稍微看了下楼主的代码,有两处明显错误已经在上面注释,楼主可以调试,看哪一步错了