关于文件输出的问题的问题,输出的有的正确,有的乱码
#include<stdio.h>#include<stdlib.h>
struct stud //定义结构
{
char Tname[10];
char Sname[10];
int Class;
char Rname[10];
float score;
};
struct studnode //定义链表
{
struct stud student;
struct studnode *next;
};
#define N 6
void output(struct studnode *headp) //输出实验室人员的函数的实现
{
FILE *fp;
if((fp=fopen("file1","w"))==NULL)
{
fprintf(stderr,"Can't open file1\n");
exit(0);
}
printf("教师姓名 学生姓名 班级 实验名称 实验成绩\n",N);
struct studnode *p;
for(p=headp;p!=NULL;p=p->next)
{
printf("%s\t%s\t%5d\t%s\t%f\n",p->student.Tname,p->student.Sname,
p->student.Class,p->student.Rname,p->student.score);
if(fwrite(p,sizeof(struct studnode),1,fp)!=1)
fprintf(stderr,"write error\n");
else
fputc('\n',fp);
}
fclose(fp);
}
void main()
{
int i;
struct studnode *p,*head;
head=NULL;
printf("输入%d个教师姓名 学生姓名 班级 实验名称 实验成绩\n",N);
for(i=0;i<N;i++)
{
p=(struct studnode*) malloc (sizeof(struct studnode));
scanf("%s%s%d%s%f",p->student.Tname,p->student.Sname,&p->student.Class,
p->student.Rname,&p->student.score);
p->next=head;
head=p;
}
output(head);
}