标题:请高人指点删除文件中指定数据
只看楼主
wangjialong
Rank: 2
等 级:论坛游民
帖 子:77
专家分:95
注 册:2012-11-8
结帖率:100%
已结贴  问题点数:10 回复次数:3 
请高人指点删除文件中指定数据
数据量不是很大
但删时要删一个结构体数据
  我编了个程序 想先把数据文件导入链表,找出要删的数据后,重新输入文件中。
编译时没报错
  但运行时总是弹出程序停止的窗口
 
 请高手帮我看看哪有错啊
程序代码:
#include<stdio.h>
#include<stdlib.h>
struct teacher
{
    int num;
    char name[5];
    char sex;
    int wage;
    struct teacher *next;
};
main()
{int n;
    FILE *fq;
    struct teacher *p,*q,*head;
    fq=fopen("e:\\1.txt","rw");
    if(fq==NULL)
    {printf("can not open the file!\n");
    exit(0);}
    printf("Please input the one you want to delete\n");
    scanf("%d",&n);
    fread(head,sizeof(struct teacher),1,fq);
    p=q=head;
    while(!feof(fq)&&n!=p->num)
    {fread(p,sizeof(struct teacher),1,fq);q=p;}
    if(n==p->num) {q->next=p->next;}
    else printf(" no such one");
    p=q=head;
    while(p->num!=NULL)
    {fwrite(p,sizeof(struct teacher),1,fq);p=p->next;}
    fclose(fq);
}
搜索更多相关主题的帖子: teacher 结构体 
2012-12-29 16:41
cwds
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:23
专家分:134
注 册:2012-6-17
得分:10 
问题描述得更清楚一些,别人才好帮忙解答。你的程序停止所报的错是什么都不讲一下,最好有截图什么的:
1、怀疑fopen的文件访问模式"rw"有点问题,找本书看看fopen的使用方法先;(PS:我鄙视国产的各种垃圾教程,最好看英文版的权威/著名书籍)
2、head指针没有初始化,要申请空间,用完后不要忘了释放;
3、你那3个指针指来指去的我真心不想思考,不过目测有问题,你指来指去head、p、q始终都指向同一位置。lz自己再思考了。
2012-12-29 18:47
wangjialong
Rank: 2
等 级:论坛游民
帖 子:77
专家分:95
注 册:2012-11-8
得分:0 
哦,对不起啊 ,没经验。

新手发言,请多指教。
2012-12-30 18:46
wangjialong
Rank: 2
等 级:论坛游民
帖 子:77
专家分:95
注 册:2012-11-8
得分:0 
话说可以这个论坛里截图吗?

新手发言,请多指教。
2012-12-30 18:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-394451-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.433933 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved