|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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中
|
|