用文件覆盖的思想写学生综合测评系统删除和修改功能,运行界面没问题,文件里面却是乱码

这是源码

img


这是运行界面

img


这是原文件

img


这是使用删除功能后

img


乱码了
一直找不到原因,希望有人能帮我解答一下,十分感谢!!

应该是读文件出错了,把fscanf后面的代码放在if语句中,如下

while(!feof(fp))
    {
        if(fscanf(fp,"..这里是你原来的代码..") ==10) //成功读取到10个元素
        {
            if(strcmp(number,stu.name)==0)
            {
                //...
            }else{
                //...
            }
        }

    }

代码这样修改,供参考:

void Delete()
{
    FILE* fp, * fp1;
    char  number[10], buff[1024];
    printf("输入删除的学生学号:");
    scanf("%s", number);
    fp = fopen("student_12.txt", "r");
    fp1 = fopen("temp.txt", "w");
    int flag = 0;
    fscanf(fp, "%s", buff);
    fprintf(fp1, "%s\n", buff);
    while (!feof(fp)) {
        fscanf(fp, "%s %s %d %s %d %d %d %d %d %d\n",/* .....  */);
        //...  原代码
        fprintf(fp1, "%s %s %d %s %d %d %d %d %d %d\n",/*....   */);
        //...  原代码
    }
    fclose(fp);
    fclose(fp1);
    if(!flag)
        //... 原代码
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^