我遇到了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);
}