C语言二进制文件读写

/* #include #define SIZE 4 struct student_type { char name[10]; int num; int age; char addr[15]; }stud[SIZE]; */ /* 运行程序 例输入 Zhang 1001 19 room_101 Fun 1002 20 room_102 Tan 1003 21 room_103 Ling 1004 21 room_104 */ //写入部分 /* void save() { FILE *fp; int i; if((fp = fopen("stu_list","w+b")) == NULL) { printf("cannot open file/n"); return; } for( i = 0; i < SIZE; i++) { if(fwrite(&stud[i], sizeof(struct student_type),1,fp) != 1) { printf("file write error/n"); } } fclose(fp); } void main(void) { int i; for(i= 0; i< SIZE; i++) scanf("%s%d%d%s",stud[i].name,&stud[i].num,&stud[i].age,&stud[i].addr); save(); } */ /* 写入以后,在程序目录下会生成一个文件stu_list, 用UltraEdit打开,或用记录本开,会发现,以字符写入的能看出来,但是那些int型的变成了乱码 */ //读取部分 /* void main() { int i; FILE *fp; fp = fopen("stu_list","r+b"); for(i = 0; i < SIZE; i++) { fread(&stud[i], sizeof(struct student_type),1,fp); printf("%-10s %4d %4d %-15s/n", stud[i].name, stud[i].num,stud[i].age, stud[i].addr); } fclose(fp); }; */ /* 读出来显示正常 */

你可能感兴趣的:(C语言二进制文件读写)