/****************刪除歌曲信息****************/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:發(fā)行年月 *\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("請輸入發(fā)行年月:"); 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);}我用該函數(shù)刪除文件中的信息,但是在運行框里可以看到信息已被刪除,但是原文件中還是沒有刪除,是不是讀寫問題出錯了。(但是可以用輸入函數(shù)輸入信息到文件中,退出運行框后,打開文件,可以顯示已儲存的文件。)
- 1 回答
- 0 關(guān)注
- 814 瀏覽
添加回答
舉報
0/150
提交
取消