gpt4 book ai didi

c - C 中的 Feof 错误

转载 作者:行者123 更新时间:2023-11-30 17:21:00 25 4
gpt4 key购买 nike

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”功能。我无法理解这个问题。

感谢您的帮助。

最佳答案

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

while (!feof(f1))

while (fgets(line, 200, f1))

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

关于c - C 中的 Feof 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28396687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com