fwrite写入数据地址对不上
#include<stdio.h>#include<stdio.h>
#define SIZE 10
struct Student_type //定义全局结构体变组stud,包含10个学生数据
{
char name[10];
int num;
int age;
char addr[15];
}stud[SIZE];
FILE *fp;
void save() //定义save函数,向文件输出SIZE个学生的数据
{
//FILE *fp;原来是在这一行的,为了在main函数中也能输出fp,我把它声明为了全局变量
int i;
if((fp=fopen("stu.dat","wb"))==NULL)
{
printf("can not open file\n");
return ;
}
printf("before:\nfp addr:%d, stud addr:%d,\nsize of a member:%d\n",fp,stud,sizeof(struct Student_type)); //我自己加的
for(i=0;i<SIZE;i++)
if(fwrite(&stud[i],sizeof(struct Student_type),1,fp)!=1)
printf("file write error");
return ;
fclose(fp);
}
int main()
{
int i;
printf("please enter data of students:\n");
for(i=0;i<SIZE;i++)
scanf("%s%d%d%s",stud[i].name,&stud[i].num,&stud[i].age,stud[i].addr);
save();
printf("now:\nfp addr:%d, stud addr:%d,\nsize of a member:%d\n",fp,stud,sizeof(struct Student_type)); //我自己加的
return 0;
}
[此贴子已经被作者于2019-7-30 06:10编辑过]