P59问题
#include<stdio.h>#include<stdlib.h>
#define N 4
structStu
{
char name;
int num;
}stu,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.name,&(stu.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中
页:
[1]