我有此功能可以找到帶有未知文本的文件中的數字的最大和最小值(「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'永遠不會運行。 –