| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1413 人关注过本帖
标题:求助!数据删除不成功怎么办?
取消只看楼主 加入收藏
应惜红颜
Rank: 2
等 级:论坛游民
帖 子:35
专家分:27
注 册:2018-5-20
结帖率:100%
收藏
 问题点数:0 回复次数:2 
求助!数据删除不成功怎么办?
先读取文件,把他放进数组里,输入学号或姓名找到你要删除的学生?
然后将剩下的数据重新写进文件里,但是删除不成功怎么办啊。。。。


#include<stdio.h>
#include<string.h>
#include<malloc.h>
#include<windows.h>
#define len sizeof(struct stu)
struct stu                  //定义链表学生信息结构体
{
    char num[11];            //学号
    char name[20];          //姓名
    char sex[3];            //性别
    float yw,sx,yy,wl,ty;   //5门成绩
    float score;            //总分
    float average;          //平均分
    int rank;               //名次
    struct stu *next;
}stu;

void Delete();

 
int main()
{
    Delete();
    return 0;
}

void Delete()
{
    struct stu aa[50];  
    FILE *fp1;
    int i=0,j,flag=0,f;
    char Scanf[20];
    system("cls");
    system("color F9");
    system("mode con cols=90 lines=30");
    printf("\n                       --------------删除学生信息--------------\n");
    printf("                       请输入需要删除的学生的【姓名】或【学号】:");
    scanf("%s",Scanf);
    getchar();
    printf("            --------------------------------------------------------------\n");
    printf("                       性别   语文   数学   英语   物理   体育\n");
    if((fp1=fopen("student.txt","r"))==NULL)//读取方式打开文件
    {
        printf("学生基本信息读取失败!");
    }
    while(fscanf(fp1,"%s %s %s %f %f %f %f %f",aa[i].num,aa[i].name,aa[i].sex,&aa[i].yw,&aa[i].sx,&aa[i].yy,&aa[i].wl,&aa[i].ty)!=EOF)
    {
        
        if(strcmp(Scanf,aa[i].num)==0 || strcmp(Scanf,aa[i].name)==0)
        {
            printf("            --------------------------------------------------------------\n");
            printf("             %-12s %-10s %-3s %-6.1f %-6.1f %-6.1f %-6.1f %-6.1f\n",aa[i].num,aa[i].name,aa[i].sex,aa[i].yw,aa[i].sx,aa[i].yy,aa[i].wl,aa[i].ty);
            flag=1;
        }
        i++;
    }
    printf("            --------------------------------------------------------------\n");
    if(flag==0)
    {
        printf("\n                      没有找到姓名或学号为【%s】的学生!\n",Scanf);
    }
    else
    {
        printf("\n                    确认删除输入【1】,放弃删除输入【0】:");
        scanf("%d",&f);
        getchar();
        if(f==1)
        {
            fp1=fopen("sudent.txt","w");
            for(j=0;j<i;j++)
            {
                if(strcmp(Scanf,aa[j].num)!=0 || strcmp(Scanf,aa[j].name)!=0)
                {
                    fprintf(fp1,"%s %s %s %5.1f %5.1f %5.1f %5.1f %5.1f\n",aa[j].num,aa[j].name,aa[j].sex,aa[j].yw,aa[j].sx,aa[j].yy,aa[j].wl,aa[j].ty);
                }
            }
            printf("\n                          删除成功!\n\n");
        }
        else
        {
            printf("\n                      你已放弃删除该学生的成绩信息!\n");
        }
    }
    fclose(fp1);
}

搜索更多相关主题的帖子: 删除 num name scanf printf 
2018-06-27 22:53
应惜红颜
Rank: 2
等 级:论坛游民
帖 子:35
专家分:27
注 册:2018-5-20
收藏
得分:0 

心里有一万句。。。。。。。。。。。
 if(strcmp(Scanf,aa[j].num)!=0 || strcmp(Scanf,aa[j].name)!=0)
中间的||改成&&
还有就是眼睛放大点fp1=fopen("sudent.txt","w");
你看看是student  不是sudent   MDMDMDMDMD.....
文件指针还要改改。。。。。。。。。用2 个嘛
真希望自己的代码能宠幸我
我要睡觉,我想自己静静

嶙峋
2018-06-28 00:16
应惜红颜
Rank: 2
等 级:论坛游民
帖 子:35
专家分:27
注 册:2018-5-20
收藏
得分:0 
回复 4楼 星泪成寒
谢谢,虽然问题都解决了,感谢你们还专门修改一趟。

嶙峋
2018-06-28 21:44
快速回复:求助!数据删除不成功怎么办?
数据加载中...
 
   



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

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