簡體   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