C语言读取文件到链表的疑问

a825926 2018-03-06 06:06:19

void file_to_struct_admin()
{
FILE *fp;
p1_admin=head_admin->next;
fp = fopen("login_users.txt", "r");
while (!feof(fp))
{
p1_admin = (struct ADMIN_USERS*)malloc(ADMIN_LEN);
fscanf(fp, "%s %s %d\n",p1_admin->id, p1_admin->pwd, &p1_admin->auth);
p1_admin = p1_admin->next;
}
p1_admin = NULL;
fclose(fp);
}


这一段代码跑起来总是有问题,有大神可以帮忙看一下么?谢谢!
...全文
420 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
NIL_ 2018-03-07
  • 打赏
  • 举报
回复
链表的插入出了问题,你应该修改
自信男孩 2018-03-07
  • 打赏
  • 举报
回复
void file_to_struct_admin()
{
    FILE *fp;
    struct ADMIN_USERS *prev, *pcur;

    prev = head_admin;
    fp = fopen("login_users.txt", "r");
    if (!fp)
        return;
    while (!feof(fp))
    {
        pcur = (struct ADMIN_USERS*)malloc(ADMIN_LEN);
        if (!pcur)
            exit(0);
        ret = fscanf(fp, "%s %s %d\n",pcur_admin->id, pcur_admin->pwd, &pcur_admin->auth);
        if (ret < 3)
            break;
        prev->next = pcur;
        prev = pcur;
    }
    pcur->next = NULL;
    fclose(fp);
}
参考一下吧 楼主的有问题
宁南学者 2018-03-06
  • 打赏
  • 举报
回复
显然有问题,这是建立链表吧,应该插入才对, p=head ; q=new struct... ; p->next=q; p=q; 然后依次循环...

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧