C中读取和解析文件

Reading and parsing files in C

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

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

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

您可以使用 fscanffscanf 有点像 printf 的反义词。您指定要读取的字符串类型以及这些值将分配给哪些变量。 fscanf 将读取文件的每一行,并将 return 读取成功的元素数。

#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;
}