我有一个文件file.txt包含两列科学数据。 每行包含两个值(一个用于列0,一个用于列1)。
10 9.5
-8 5
-8 5
-3 6.25
-9 4.75
4 8
-6 5.5
...
我的任务是用C编写一些软件来计算第1列的平均值并显示结果。
答案 0 :(得分:0)
您可以使用fscanf
。 fscanf
的工作方式与printf
相反。您可以指定要读取的字符串类型以及将分配这些值的变量。 fscanf
将读取文件的每一行,并返回成功读取的元素数。
#include <stdio.h>
int main(int argc, char const *argv[])
{
FILE* test_file = fopen("test.txt", "r");
double sum = 0;
unsigned number_elements = 0;
while(1){
double first, second;
if (fscanf(test_file, "%lf %lf", &first, &second) < 2){
break;
}
++number_elements;
sum += second;
}
fclose(test_file);
printf("Average: %f\n", sum/number_elements);
return 0;
}