我有此功能可以找到带有未知文本的文件中的数字的最大和最小值(“ADS 50 d 15”)。它只适用于文件中的数字,但当有字符时,它会停止。如何从文件中只读取数字,直到C中的EOF为止
{
int n;
int min = INT_MAX, max = INT_MIN;
int flag = 0;
rewind(f);
while (fscanf(f, "%d", &n) != EOF)
{
if (ferror(f))
{
perror("Error:");
}
if (flag == 0)
{
min = n;
max = n;
flag = 1;
}
if (min>n)
min = n;
if (max<n)
max = n;
}
printf("\nMax value: %d\nMin value: %d\n", max, min);
}
如果输入不匹配的整数,的fscanf返回0,不'EOF'。还要注意,'ferror(f)'只有在'fscanf'已经返回'EOF'时才会成立,因此''if'永远不会运行。 –