| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 865 人关注过本帖
标题:读取文件时多了一条乱码,希望大家斧正
取消只看楼主 加入收藏
daybreaker
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-10-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:0 
读取文件时多了一条乱码,希望大家斧正
我做的一个成绩管理系统,但是保存到文件里面后在读取出来就多了一条乱码的记录,希望大家斧正

保存函数如下:

void save(STU *head)        //保存记录的函数
{
    FILE *fp;
    STU *p1;
    char name[15];
    char state = 0;            //保存是否成功的状态,成功保存则为0,失败为1
    if(head == NULL)
        printf("\nlist null!");
    else
    {
        p1 = head;
        printf("\n请输入保存记录的名字(少于15个字符):");
        scanf("%s",name);
        if((fp = fopen(name,"w+")) == NULL)
            printf("\ncannot open this file");
        else
        {
            do
            {
                if(fwrite(p1,LEN,1,fp) != 1)
                {
                    printf("\nfile write error!\n");
                    state = 1;
                    break;
                }
                p1 = p1->next;
            }while(p1 != NULL);
            if(state == 0)
                printf("\nThe %d records save scuccee!\n",n);
            fclose(fp);
        }
    }
}

读取函数如下:

STU *read(void)            //读取记录的函数
{
    FILE *fp;
    STU *head;
    STU *p1,*p2;
    char name[15];
    head = NULL;
    printf("\n请输入读取记录的名字(少于15个字符):");
    scanf("%s",name);
    if((fp = fopen(name,"r+")) == NULL)
    {
        printf("\nfile cannot open");
        return(head);
    }
    else
    {
        n = 0;
        head = (STU *)malloc(LEN);
        p1 = head;
        do
        {
            fread(p1,LEN,1,fp);
            p2 = p1;
            p1 = (STU *)malloc(LEN);
            p2->next = p1;
            n++;
        }while(!feof(fp));
        p2->next = NULL;
        free(p1);
        return(head);
        fclose(fp);
    }
}
搜索更多相关主题的帖子: 名字 null 
2011-03-02 14:59
快速回复:读取文件时多了一条乱码,希望大家斧正
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022440 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved