1
fscanfが無限ループに陥る問題があります。 {無限ループfscanf in C
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
何らかの理由で、コードがループでスタックし、最初のゼロが残り、他の数に続くことはありません。
あなたの 'fscanf'呼び出しは成功すると' 1'を返します。そのため、 'EOF'ではなく、それと比較してください。 – melpomene
私はあなたが1つの 'char'に20文字を格納できないと確信しています。 – melpomene
[なぜループ状態の中のiostream :: eofが間違っていると思われるのですか?](http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) – Eiko