用Visual C++练习C语言保存数据文件,为什么用记事本打开此文件,其中的整数都是乱码?

2024-12-05 01:18:34
推荐回答(5个)
回答1:

记事本只能显示字符串,你的结构体中的num和age两个值,是被显示为乱码的。因为他们是int型数值,而不是字符串。

回答2:

#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{ k=fseek(fp,i*sizeof(struct Student_type),0);
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;

回答3:

你存入的是二进制数据,用记事本打开自然是乱码,要想打开是正常,得存入的是字符串!

回答4:

你这里好象只是读文件,不是写文件。

回答5:

用C++的读写方式吧, fstream