为什么c语言保存后删不掉,求助!数据删除不成功怎么办?

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

求助!数据删除不成功怎么办?

先读取文件,把他放进数组里,输入学号或姓名找到你要删除的学生?

然后将剩下的数据重新写进文件里,但是删除不成功怎么办啊。。。。

#include

#include

#include

#include

#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

{

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);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值