| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 655 人关注过本帖
标题:C程编程,求大神解答!!
只看楼主 加入收藏
冬沫夏
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-10-7
结帖率:100%
收藏
已结贴  问题点数:8 回复次数:3 
C程编程,求大神解答!!
void editname() //按姓名修改
{
    struct student
    {
        char name[20];
        char num[12];
        float score;
        int banji;
    }stu[1000];
    FILE *fp;
    int i=0,n,pd;
    float gscore;
    char sname[20];
    do
        {
            printf("请输入所修改的学生姓名:\n");
            gets(sname);
            printf("请输入修改后的成绩:\n");
            scanf("%f",&gscore);
            if((fp=fopen("stud_score.dat","rb"))==NULL)
                {
                    printf("不能打开文件\n");
                    exit(0);
                }
                while(!feof(fp))
                {
                    fscanf(fp,"%s %s %f %d",stu[i].name,stu[i].num,&stu[i].score,&stu[i].banji);
                    if(strcmp(sname,stu[i].name)==0)
                    stu[i].score=gscore;
                    i++;
                }
            fclose(fp);
            if((fp=fopen("stud_score.dat","wb"))==NULL)
            {
               printf("不能打开文件\n");  exit(0);
            }
            for(n=0;n<i-1;n++)
                fprintf(fp,"%s %s %f %d\n",stu[n].name,stu[n].num,stu[n].score,stu[i].banji);
            printf("----------------------------\n");
            printf("请选择是否继续修改?\n");
            printf("1.是  0.否\n");
            scanf("%d",&pd); getchar();
        }while(pd==1);
    fclose(fp);
}
这个修改完再次查询之后文件里什么都没有了,怎么改呀??
搜索更多相关主题的帖子: 姓名 
2016-10-16 14:32
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
先发现了两个问题
1.i只有第一次循环初始化了,后面的都没初始化。如继续修改时。
2.fprintf(fp,"%s %s %f %d\n",stu[n].name,stu[n].num,stu[n].score,stu[i].banji);//最后一个数组的下标是i
2016-10-16 15:34
冬沫夏
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-10-7
收藏
得分:0 
回复 2楼 ehszt
厉害厉害  但是还是不对
2016-10-16 15:49
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
回复 3楼 冬沫夏
还有后面一个fclose()应该在循环里面,不然会重复打开。
2016-10-16 15:57
快速回复:C程编程,求大神解答!!
数据加载中...
 
   



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

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