在C中读取和解析文件

时间:2015-07-19 19:00:05

标签: c fopen

我有一个文件file.txt包含两列科学数据。 每行包含两个值(一个用于列0,一个用于列1)。

10 9.5
-8 5
-8 5
-3 6.25
-9 4.75
4 8
-6 5.5
...

我的任务是用C编写一些软件来计算第1列的平均值并显示结果。

1 个答案:

答案 0 :(得分:0)

您可以使用fscanffscanf的工作方式与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;
}