当前位置: 代码迷 >> C语言 >> 输入学生的学号 姓名 三门课成绩 平均分 然后保存到一个文件上,为什么文件的 ...
  详细解决方案

输入学生的学号 姓名 三门课成绩 平均分 然后保存到一个文件上,为什么文件的 ...

热度:694   发布时间:2008-01-18 20:09:44.0
输入学生的学号 姓名 三门课成绩 平均分 然后保存到一个文件上,为什么文件的成绩部分是乱码
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define LEN sizeof(struct student)
struct student
{
    char num[5];
    char name[20];
    float score[3];
    float ave;
    struct student*next;
}
main()
{
    void creat_fput(struct student*);
    struct student *head;
    head=(struct student*)malloc(LEN);
    creat_fput(head);
}
void creat_fput(struct student*head)
{
    struct student *p1,*p2;
    FILE*fp;
    int i,j=1;
    float sum=0;
    fp=fopen("stud3.16","wb");
    if(fp==NULL)
       printf("文件建立失败!\n");
    printf("请输入学生信息,以学号为#号结束:\n");
    p1=head;
    do
    {
        printf("第%d个学生:\n",j);
        printf("学号:");
        scanf("%s",p1->num);
        if(p1->num[0]=='#')
          break;
        fwrite(&p1->num,strlen(p1->num),1,fp);
        fputc(' ',fp);
        printf("姓名:");
        scanf("%s",p1->name);
        fputc(' ',fp);
        fwrite(&p1->name,strlen(p1->name),1,fp);
        printf("成绩:\n");
        for(i=0;i<3;i++)
           {printf("%c:",'A'+(char)i);
            scanf("%f",&p1->score[i]);
            fwrite(&p1->score[i],4,1,fp);
            sum=sum+p1->score[i];}
        p1->ave=sum/3;
        fwrite(&p1->ave,4,1,fp);
        fputc('\n',fp);
        p2=p1;
        p1=(struct student*)malloc(LEN);
        p2->next=p1;
        sum=0;
        j++;
    }while(1);
    p2->next=NULL;
    fclose(fp);
}

[[italic] 本帖最后由 llp108 于 2008-1-19 21:01 编辑 [/italic]]
搜索更多相关的解决方案: 学号  平均分  乱码  姓名  文件  

----------------解决方案--------------------------------------------------------
自己写啊,这几天经常看见这个题目啊,我都写了两次了
----------------解决方案--------------------------------------------------------
因为你的文件使用方式为“wb”,也就是二进制写,
所以你所说的“乱码”事实上就是数值的二进制形式,和它在内存里面的形式一致。

通俗地说,二进制是给机器看的,不是给人看的,所以人眼睛认为它是乱码。
----------------解决方案--------------------------------------------------------
该成w也一样
----------------解决方案--------------------------------------------------------
  相关解决方案