工作10年,还没有人会对文件直接这么操作的。最简单的方法是把内容从文件中读到内存,然后在内存删除修改后,再写回文件中。计算机的写文件等速度非常快的,不用担心。
代码:
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");
}
}
MFC里有种串行化的思想,可以借鉴一下~~~