gpt4 book ai didi

c - 带 EOF 的额外循环

转载 作者:行者123 更新时间:2023-11-30 14:20:32 26 4
gpt4 key购买 nike

我在使用函数 feof 时遇到问题,这是我的代码:

while(!feof(archlog))
{ if(!fgets(line,MAXLINE,archlog))
printf("\nERROR: Can't read on: %s\n", ARCHTXT);
else
printf("%s",line);
}

当我运行它时,它会打印文件的文本,但会产生一个额外的循环并打印错误,我想避免这种情况,我希望它只打印文件的文本而不需要额外的循环。

最佳答案

如果文件以新行结束,循环将再次进入。

解决办法应该是:

while(!feof(archlog))
{ if(!fgets(line,MAXLINE,archlog))
printf("\nERROR: Can't read on: %s\n", ARCHTXT);
else
printf("%s",line);

if ( (c=fgetc(archlog)) == EOF)
break;
ungetc(c, archlog);
}

关于c - 带 EOF 的额外循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15368229/

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