![](/img/trans.png)
[英]fscanf not returning EOF or fscanf going to infinite loop in C
[英]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.