/****************删除歌曲信息****************/void Delete(int *N1){ int i, M = -1; char m[20]; char j[20]; char l[20]; char k[20]; printf("删除歌曲信息:"); printf("\n\n\n"); printf("***************************************\n"); printf("* *\n"); printf("* 1:歌名 2:作者 *\n"); printf("* *\n"); printf("* *\n"); printf("* 3:演唱者 4:发行年月 *\n"); printf("* *\n"); printf("***************************************\n"); printf("\n\n请输入删除选项:"); scanf("%d", &i); if (i == 1) { printf("请输入歌名:"); scanf("%s", &m); for (i = 0; i < *N1; i++) if (strcmp(m, SI[i].name) == 0) M = i; } else if (i == 2) { printf("请输入作者:"); scanf("%s", &j); for (i = 0; i < *N1; i++) if (strcmp(j, SI[i].author) == 0) M = i; } else if (i == 3) { printf("请输入歌手:"); scanf("%s", &l); for (i = 0; i <*N1; i++) if (strcmp(k, SI[i].singer) == 0) M = i; } else if (i == 4) { printf("请输入发行年月:"); scanf("%s", &k); for (i = 0; i <*N1; i++) if (strcmp(l, SI[i].pub_date) == 0) M = i; } if (M != -1) { *N1 = *N1 - 1; for (i = M; i <*N1 && M != -1; i++) SI[i] = SI[i + 1]; } else if (M == -1) printf("没有找到!\n"); fclose(fp);}我用该函数删除文件中的信息,但是在运行框里可以看到信息已被删除,但是原文件中还是没有删除,是不是读写问题出错了。(但是可以用输入函数输入信息到文件中,退出运行框后,打开文件,可以显示已储存的文件。)
1 回答
- 1 回答
- 0 关注
- 790 浏览
添加回答
举报
0/150
提交
取消