失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 33. 使用fread()/fwrite()往文件中写入结构体 从文件中读出结构体

33. 使用fread()/fwrite()往文件中写入结构体 从文件中读出结构体

时间:2023-06-23 10:35:11

相关推荐

33. 使用fread()/fwrite()往文件中写入结构体 从文件中读出结构体

1 //读写结构体 2 #include <stdio.h> 3 typedef struct student 4 { 5int num; 6char name[30]; 7char sex; 8float math; 9float english; 10float chinese; 11 12 }Stu; 13 14 Stu s[5] = 15 { 161001,"wukong",'x',99,99,99, 171002,"songjiang",'x',99,22,11, 181003,"baoyu",'x',79,33,100, 191004,"liudehua",'y',100,100,88, 05,"zhaosi",'z',33,34,12 21 }; 22 23 int main(void) 24 { 25 26//往文件中写入结构体 27FILE* pf = fopen("G:/qtcode/stu.data","w+"); 28if(pf == NULL) 29 exit(-1); 30 #if 1 31//写入方式1 32int i; 33for(i = 0;i<sizeof(s)/sizeof(*s);i++) 34{ 35 fwrite((void*)(&s[i]),sizeof(Stu),1,pf); 36} 37 #endif 38 #if 0 39//写入方式2 40fwrite((void*)s,sizeof(s),1,pf); 41 42 #endif 43 #if 0 44//写入方式3 45fwrite((void*)s,sizeof(Stu),5,pf); 46 47 #endif 48 49 50 51rewind(pf); 52//从文件中读结构体 53 #if 0 54//读出方式1 55Stu buf; 56while( fread((void*)&buf,sizeof(Stu),1,pf) ) 57{ 58 printf("num = %d\n",buf.num); 59 printf("name = %s\n",buf.name); 60 printf("sex = %c\n",buf.sex); 61 printf("math = %.2f\n",buf.math); 62 printf("english = %.2f\n",buf.english); 63 printf("chinese = %.2f\n",buf.chinese); 64 printf("--------------\n"); 65} 66 #endif 67 68 #if 0 69//读出方式2 70Stu buf[3]; 71int j,n; 72while((n = fread((void*)buf,sizeof(Stu),3,pf)) > 0) 73{ 74 for(j = 0;j < n;j++) 75 { 76 printf("num = %d\n",buf[j].num); 77 printf("name = %s\n",buf[j].name); 78 printf("sex = %c\n",buf[j].sex); 79 printf("math = %.2f\n",buf[j].math); 80 printf("english = %.2f\n",buf[j].english); 81 printf("chinese = %.2f\n",buf[j].chinese); 82 printf("--------------\n"); 83 } 84} 85 #endif 8687 #if 0 88//读出方式3 89Stu buf[5]; 90int j; 91fread((void*)buf,sizeof(Stu),5,pf); 92for(j = 0;j < 5;j++) 93{ 94 printf("num = %d\n",buf[j].num); 95 printf("name = %s\n",buf[j].name); 96 printf("sex = %c\n",buf[j].sex); 97 printf("math = %.2f\n",buf[j].math); 98 printf("english = %.2f\n",buf[j].english); 99 printf("chinese = %.2f\n",buf[j].chinese);100 printf("--------------\n");101}102 #endif103return 0;104 }

如果觉得《33. 使用fread()/fwrite()往文件中写入结构体 从文件中读出结构体》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。