C中的无限循环fscanf



我遇到了fscanf陷入无限循环的问题。{

char num;
FILE *filePtr;
if ((filePtr = fopen("filename.txt", "r")) == NULL)
{
    printf("File could not be opened");
}
else
{
    while (fscanf(filePtr, "%20[^ ,]", &num) != EOF)
    {
        displayFun(num);
    }
}
return 0;

我需要它读取的文件输入是:0、1、2、3、16、17、1234、5678、-201、65534、65535、65536、-1

由于某种原因,代码被卡在循环和第一个零中,不会继续到其他数字。

"%20[^ ,]"从不消耗,或空间。他们在filePtr等待下一个fscanf()呼叫。代码需要以某种方式读取,和空格。

正如@melpomine所评论的,将文本作为字符串读取到char中是不起作用的,

建议改为阅读int,

int number;
while (fscanf(filePtr, "%d,", &number) == 1) {
    displayFun(num);
}

相关内容

  • 没有找到相关文章

最新更新