내 *.txt
파일에 번호 목록이 있습니다파일에서 숫자를 읽고 평균을 계산하는 방법은 무엇입니까?
1 2
3
는 numbers.txt
을했다. 나는 그들을 읽고 평균을 계산할 필요가있다. 내 파일은 다음과 같다. (1 + 2 + 3)/3 = 2;
내 코드가 잘못된 결과를 보여 주지만 3 번 읽는다. 왜 그게, 어떻게 해결할 수 있습니까?
내 코드 : 읽기가 파일의 끝을 시도했습니다 통과 할 때까지 테스트 fscanf()
while(fscanf(f, "%lf", &tmp) != EOF) {
printf("tmp = %f \n", tmp);
sum += tmp;
++ i;
}
feof(f)
에 feof()
테스트에서
#include <stdio.h>
#include <stdlib.h>
double fun(const char *filename)
{
double sum = 0, mean = 0, tmp = 0;
int i = 0;
FILE *f;
if((f = fopen(filename, "r")) == NULL)
{
exit(-1);
}
while(!feof(f))
{
fscanf(f, "%lf", &tmp);
printf("tmp = %f \n", tmp);
sum += tmp;
++ i;
}
i = i - 1;
mean = sum/i;
fclose(f);
printf("i = %d\n", i);
printf("sum = %f\n", sum);
printf("mean = %f\n", mean);
return mean;
}
int main(int argc, char **argv)
{
fun("numbers.txt");
return 0;
}
가장 좋은 해결책은'int cnt; 'EOF'는 EOF 또는 입출력 에러를 의미하고, 0은 '이중'으로 변환하지 못했음을 의미하고, 1 : 1 개의 성공적인 변환을 의미합니다. – chux
괄호 안의 숫자는 이전 주석에 정렬되지 않았습니다. – BLUEPIXY