关于文件的读写问题

/****************删除歌曲信息****************/

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

}

我用该函数删除文件中的信息,但是在运行框里可以看到信息已被删除,但是原文件中还是没有删除,是不是读写问题出错了。(但是可以用输入函数输入信息到文件中,退出运行框后,打开文件,可以显示已储存的文件。)


WANY2
浏览 791回答 1
1回答

onemoo

这段代码除了最后的 fclose 之外,我好像没看到其他的文件操作啊! 你似乎就没读写文件
打开App,查看更多内容
随时随地看视频慕课网APP