匿名用户
1级
2012-05-21 回答
你的描述不清晰,B1和B2两个结构数组,到底要删除哪个?B[2]是肯定不对的,这两个数组的长度都是2,下标只能是0和1,即B1[0], B1[1], B2[0], B2[1]。
你还是先把问题说清楚了,这个程序不难写。
追问:
不好意思漏掉了! 是要删除B2[1].name 和 B2[1].point
麻烦大侠指教!
追答:
还不是很清楚,文件里存了哪几条数据?数据在B1和B2里是如何存放的。以B2为例,B2[0]或B2[1],每个里存放一条数据还是用链表串起来的多条数据?
我按如下的假设实现:
文件中vip的数据以文本方式存储(假设文件名为vip.txt),每一条数据存一个会员姓名和会员积分信息,用空格分给,每条记录结束是一个回车符。数据读取出来之后放入B2[1]为头的链表中,然后将B2[1]代表的数据删除(即第一条记录),把其余部分的数据重新写入到文件中。
前面的定义略
main()
{
FILE *fp;
struct vip *ptr, buf;
fp = fopen("vip.txt", "r");
if(fp == NULL) {
printf("Can not open file vip.txt\n");
exit(-1);
}
ptr = NULL;<