fscanf()函数的多读一个整数
下面的C程序运行时会多读入一个整数,如何解决?#include <stdio.h>
#include <stdlib.h>
#define MAX_LEN 32
void print(int *keys, int len)
{
int i;
for (i = 1; i <= len; i++)
printf("%d\t", keys[i]);
printf("\n");
}
int main()
{
FILE *fp;
int keys[MAX_LEN];
int len = 0, i;
fp = fopen("sort.txt", "rt");
if (!fp){
printf("Can not open input file.\n");
exit(-1);
}
i = 1;
while ( !feof(fp) )
fscanf(fp, "%d", &keys[i++]);
len = i - 1;
print(keys, len);
close(fp);
return 0;
}
sort.txt内容如下:
49 38 65 97 76 13 27 49
在Linux中运行结果:
49 38 65 97 76 13 27 49 1