浅仓彩音哪部穿丝袜的:在VC++中使用fwrite()为什么在文件中的内容是乱码

来源:百度文库 编辑:高考问答 时间:2024/04/28 05:37:41
void main(){
struct student{
int num;
char name[20];
int c;
int java;
int ave;
}sd[2],st[2];
char filename[20];
FILE *fp;
int i;
for(i=0; i<2;i++){
printf("请输入学号 姓名 C成绩 JAVA成绩:");
scanf("%d%s%d%d",&sd[i].num,&sd[i].name,&sd[i].c,&sd[i].java);
sd[i].ave=(sd[i].c+sd[i].java)/2;
}
//printf("将学生数据保存的文件名是:");
// scanf("%s",filename);
fp=fopen("abcdefg.txt","wt+");
if (fp==NULL){
printf("文件不能打开\n");
exit(0);
}
fwrite(&sd[0],sizeof(struct student),2,fp);
rewind(fp);
fread(&st[0],sizeof(struct student),2,fp);
for(i=0;i<2;i++)
printf("\n%3d%-20s%5d%5d%5d\n",st[i].num,st[i].name,st[i].c,st[i].java,st[i].ave);

fclose(fp);
}

程序如上,我也试过谭浩强的书里也是如此,是VC++中就这样,还是那里错了,虽然用fread()可以读出来没有错误,可是我想的是要在文件中能使用文本方式,也就是说可以在文件中看得到我保存在文件的内容,是程序有错还是有另外的操作方式,请高手邦忙。