马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<stdlib.h>
#define N 4
struct Stu
{
char name[40];
int num;
}stu[N],sb;
int main(void)
{
FILE *fp;
int i;
if ((fp = fopen("test.txt","w")) == NULL)
{
printf("文件打开失败\n");
exit(EXIT_FAILURE);
}
printf("请开始录入学生信息(格式: 姓名 学号 )\n");
for (i = 0;i < N;i++)
{
scanf("%s %d",stu[i].name,&(stu[i].num));
}
fwrite(stu,sizeof(struct Stu),N,fp);
// fwrite(stu,sizeof(stu),1,fp);
printf("录入成功\n");
fclose(fp);
if ((fp = fopen("test.txt","r")) == NULL)
{
printf("文件打开失败\n");
exit(EXIT_FAILURE);
}
fseek(fp,sizeof(struct Stu),SEEK_SET);
fread(&sb,sizeof(struct Stu),1,fp);
printf("第二位同学的信息:\n");
printf("名字 %s\n",sb.name);
printf("学号 %d\n",sb.num);
fclose(fp);
return 0;
}
fwrite(stu,sizeof(stu),1,fp); 和 fwrite(stu,sizeof(struct Stu),N,fp); 都可以运行成功.
他俩有什么区别么?
一样的啊
stu 是整个数组的大小 ,有n个结构体
sizeof(stu) == sizeof (一个结构体) *n个
然后写入fp中
|