为什么这段代码生成的文件是乱码
- C/C++ code
FILE *fp; int i,n; STU *ps; char fileName[20]; printf("请输入文件名(扩展名为.txt):"); scanf("%s",fileName); if((fp=fopen(fileName,"w"))==NULL){ printf("文件无法打开!"); return 0; } printf("请输入学生人数:"); scanf("%d",&n); for(i=0;i<n;i++){ ps=(STU *)malloc(sizeof(STU)); printf("请输入第%d位学生信息\n学号:",i+1); scanf("%d",&ps->num); printf("姓名:"); scanf("%s",ps->name); printf("数学成绩:"); scanf("%f",&ps->math); printf("英语成绩:"); scanf("%f",&ps->english); printf("c语言成绩:"); scanf("%f",&ps->cProgramming); //creatFile(ps);//将输入的信息存入文件 fwrite(ps,sizeof(STU),1,fp); free(ps); } fclose(fp);[解决办法]
没问题.
你写的二进制, 当然乱码,你fread进来就没事了。