繁体   English   中英

C语言中的无限循环fscanf

[英]Infinite loop fscanf in C

我遇到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()调用。 代码需要以某种方式阅读,和空间。

正如@melpomene所说,将文本作为字符串读入char无效,

推荐阅读的int,来代替。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM