#include <stdio.h>
#define n 2
struct student
{int number;
char name[10];
int score;
}stu[n];
void save()
{FILE *fp;
int i;
if((fp=fopen("file1.dat","w"))==NULL)
{printf("error");
return;
}
for(i=0;i<n;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("error");
fclose(fp);
}
int main()
{
int i;
for(i=0;i<n;i++)
{printf("enter student%d's information:",i+1);
scanf("%d%s%d",&stu[i].number,stu[i].name,&stu[i].score);
}
save();
return 0;
}
注意,一个是file1.dat产生的路径,这个是相对路径,最好你用绝对路径表示,否则怕找不到
一个是文件的内容是二进制的,数字不能直接在记事本中显示。
还有就是win7以上的系统,要注意写文件的权限。
没错啊,我运行了。可以产生file1.dat
你说的是什么错误。
看起来scanf("%d%s%d",&stu[i].number,stu[i].name,&stu[i].score);这里会有点小问题,因为"%d%s%d"这里没有分割,如果输入1sss11sss222这样可能就有问题
还有就是main函数没有参数,有些编译器可能编译会不通过