我遇到了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
由于某种原因,代码卡在循环中并且第一个零并且不会继续到其他数字。
答案 0 :(得分:2)
"%20[^ ,]"
从不消耗,
或空格。他们会留在filePtr
进行下一次fscanf()
通话。代码需要以某种方式读取,
和空格。
在@melpomene评论时,将文字作为字符串读取到char
中将不起作用,
建议您改为阅读int
和,
。
int number;
while (fscanf(filePtr, "%d,", &number) == 1) {
displayFun(num);
}