这是一个从文件中读取未知数量的整数并计算平均值的函数。由于某种原因,文件中的最后一个元素被读取了两次。有人可以解释为什么吗?我知道如何解决它,但想知道幕后发生了什么。
int total = 0, count = 0, input;
FILE *filePtr;
filePtr = fopen("file.txt", "r");
if (filePtr != NULL)
do
{
fscanf(filePtr, "%d", &input);
total = total + input;
count++;
} while (!feof(filePtr));
printf ("%d", total);
if
我通过在循环中放一秒钟来修复它:
do
{
fscanf(filePtr, "%d", &input);
if (!feof(filePtr))
{
total = total + input;
count++;
}
} while (!feof(filePtr));