记事本只能显示字符串,你的结构体中的num和age两个值,是被显示为乱码的。因为他们是int型数值,而不是字符串。
#include
#include
#define SIZE 10
struct Student_type
{ char name[10];
int num;
int age;
char addr[15];
}stud[SIZE];
int main()
{ FILE *fp;
int i,k;
if((fp=fopen("stu.dat","rt+"))==NULL)//这里,打开文本文件,而不是二进制文件?
{ printf("cannot open file\n");
exit(0);
}
for(i=0;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);
return 0;
你存入的是二进制数据,用记事本打开自然是乱码,要想打开是正常,得存入的是字符串!
你这里好象只是读文件,不是写文件。
用C++的读写方式吧, fstream