gpt4 book ai didi

c - 使用 fscanf 读取文件后无限循环

转载 作者:太空宇宙 更新时间:2023-11-04 01:34:12 25 4
gpt4 key购买 nike

我正在使用 fscanf 读取输入

(2,3)

(3,4)

来自一个文件,但每当我运行该程序时它都会进入无限循环。输入来自文件 abc.txt ,该文件必须作为命令行参数传递。代码如下

#include<stdio.h>
#include<stdlib.h>

int main(int argc,char **argv){

int a,b;
FILE *fp=fopen(argv[1],"r");

while(!feof(fp)){
fscanf(fp,"(%d,%d)",&a,&b);
printf("\nThe values are :%d %d\n",a,b);
}

fclose(fp);

}

可能是什么问题?

最佳答案

fscanf 没有找到您想要读取的数据时,它不会推进读取位置,因此永远不会到达 EOF。检查 fscanf 是否返回两个数字,如果没有则中断:

while(!feof(fp)){
if (fscanf(fp,"(%d,%d)",&a,&b) != 2) {
break;
}
printf("\nThe values are :%d %d\n",a,b);
}

您可以完全放弃 feof 检查,因为 break 会更快发生。

关于c - 使用 fscanf 读取文件后无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17921514/

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