我很困惑下面的函数是如何工作的,这样它就可以从数据文件中读取数字,将数字放在数组a中,并返回读取的数字数量或N的计数,以较小的为准。
#include <stdio.h>
{
int readNumbers(FILE* input,int A[],int N)
int n;
n = 0;
while(n < N&&!feof(input))
{
fscanf_s(input,"%f",&A[n]));
n++;
}
}
上面的程序应该读取一个数字文件并将它们放入数组中。我只是被困在了如何对读取的数字计数或n进行编程
1 scanf()用法错误
int readNumbers(FILE* input,int A[],int N)
...
// fscanf_s(input,"%f",&A[n]));
fscanf_s(input, "%d", &A[n]));
2为了区分feof()
和ferror()
,应该在 fscanf_s()
返回EOF后使用,而不是错误地使用feof()
。
while(n < N && fscanf_s(input,"%d", &A[n]) != EOF) {
...
}
3如@Hogan所说,添加返回n;
语法错误:change{
int readNumbers(FILE* input,int A[],int N)
// to
int readNumbers(FILE* input,int A[],int N) {