/****************删除歌曲信息****************/
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);
}
我用该函数删除文件中的信息,但是在运行框里可以看到信息已被删除,但是原文件中还是没有删除,是不是读写问题出错了。(但是可以用输入函数输入信息到文件中,退出运行框后,打开文件,可以显示已储存的文件。)
onemoo
相关分类