| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 720 人关注过本帖
标题:请大佬帮弟弟改改
取消只看楼主 加入收藏
无言之夏
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2023-3-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
请大佬帮弟弟改改
请大佬帮弟弟改改,数据修改之后在score中多了一组信息“ddd 60”
两名同学分别是,zhangsan,lisi 学科是aaa ,bbb,ccc,ddd,学科后面的是分数
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    int i=0;
    char subject[50];
    char a[50];
    char name[50];
    struct stu {
        char name[50];
        char number[10];
        char subject[50];
        char score[3];
        char score3[3];
    };
    
        struct stu stum;    
        struct stu copy;
        
        
        FILE *fp;
        FILE *fp1;
        
        fp = NULL;
        fp1 = NULL;
        
        fp=fopen("score.txt","r+");
        fp1=fopen("score1.txt","r+");
        printf("请输入您所修改成绩学生的名字:");
        scanf("%s",&name);
        printf("请输入您所修改成绩学生的科目:");
        scanf("%s",&subject);
        while(feof(fp)==0)
        {        
            fscanf(fp,"%s %s",&stum.name,&stum.number);
            strcpy(copy.name,stum.name);
            strcpy(copy.number,stum.number);
            fprintf(fp1,"%s %s ",copy.name,copy.number);
            if(strcmp(name,stum.name)==0)
            {
                //fprintf(fp1," %s %s ",stum.name,stum.number);
                fscanf(fp," %s %s",&stum.subject,&stum.score);
                strcpy(copy.subject,subject);
                if(strcmp(subject,stum.subject)==0)
                {
                    printf("您要将该同学的%s分数改为:",copy.subject);
                    scanf("%s",&copy.score);    
                    fprintf(fp1,"%s %s ",copy.subject,copy.score);                    
                }
            }
        }
        //fseek(fp,5,2);
        //rewind(fp);
        //rewind(fp1);
        fclose(fp);
        fclose(fp1);
        fp=fopen("score.txt","w");
        fp1=fopen("score1.txt","r+");
        while(feof(fp1)==0)
        {
            fscanf(fp1,"%s %s",&stum.name,&stum.number);
            strcpy(copy.name,stum.name);
            strcpy(copy.number,stum.number);
            fprintf(fp,"%s %s ",copy.name,copy.number);
        }
        fclose(fp);
        fclose(fp1);
        return 0;
}







score.txt
内容:zhangsan 111 aaa 60 bbb 60
lisi 222 ccc 60 ddd 60

score.txt是空的

搜索更多相关主题的帖子: number score copy char name 
2023-03-22 15:15
无言之夏
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2023-3-22
收藏
得分:0 
回复 2楼 阳光上的桥
谢谢大佬,但是我找到错误了,就是while 循环会多执行一次
2023-03-22 20:24
无言之夏
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2023-3-22
收藏
得分:0 
回复 3楼 rjsp
抱歉,抱歉,大佬,我自己又想了想,问题已经解决了
2023-03-22 20:26
快速回复:请大佬帮弟弟改改
数据加载中...
 
   



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

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