C语言文件中的数据怎么删除?
如果我想要删除文件中某数据快的数据,要怎么删除,有一种方法是覆盖,怎么覆盖?如果不用覆盖有没有更好的方法?发一段代码:
void del() /*删除同学录中某个同学的信息*/
{
FILE *fp;
char str[10];
if ((fp=fopen("result.dat","rb+"))==NULL)
{
printf("打开文件错误!!!\n");
getch();
exit(1);
}
printf("请输入要删除的同学的姓名:");
scanf("%s",str);
system("cls");
while (fread(&stu,LEN,1,fp))
{
if (strcmp(stu.name,str)==0)
{
printf("该同学的信息为:\n");
printf("\n学号\t姓名\t联系电话\n");
printf("%s\t%s\t%s\n\n",stu.no,stu.name,stu.tel);
fseek(fp,-LEN,SEEK_CUR); /*位置指针移动到该数据块首位*/
fwrite("\0",LEN,1,fp);
fclose(fp);
break;
}
}
if (feof(fp))
{
printf("同学录中没有该同学的信息!!!\n");
}
}