首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C中的Feof错误

C中的Feof错误
EN

Stack Overflow用户
提问于 2015-02-09 00:57:53
回答 1查看 226关注 0票数 0
代码语言:javascript
复制
struct node 
{
char item[200];
struct node* next;
};

FILE* unionMethod(char f1name[50], char f2name[50])
{
    FILE* f1;
    FILE* f2;

    f1=fopen(f1name,"r");
    f2=fopen(f2name,"r");
    char line[200];
    struct node *head1=NULL;
    struct node *head2=NULL;

    while(!feof(f1))
    {
        fgets(line, 200, f1);
        struct node *cur=head1->next;
        if(head1==NULL)
        {
            head1 = (struct node *) malloc( sizeof(struct node));
            fgets(line,200,f1);
            strcpy(head1->item, line);
            head1->next=NULL;
        }
        else
        {
            cur = (struct node *) malloc( sizeof(struct node));
            fgets(line,200,f1);
            strcpy(cur->item, line);
            cur->next=NULL;
        }
    }

    fclose(f1);
}
int main()
{
    unionMethod("inputfile1.txt","inputfile2.txt");
    return 0;
}

我基本上要做的是从文件中获取行,并将它们放入一个链表中。然而,由于"feof“功能,当执行到达而零件程序停止时。我不能理解这个问题。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2015-02-09 00:59:50

这是一个非常频繁的question,只需更改

代码语言:javascript
复制
while (!feof(f1))

代码语言:javascript
复制
while (fgets(line, 200, f1))

原因是,EOF标记是在fgets()尝试读取文件末尾之后设置的,因此您需要额外迭代一次才能设置它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28396687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档