【问题标题】:Reading and parsing files in C在 C 中读取和解析文件
【发布时间】:2015-07-19 19:00:05
【问题描述】:

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

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

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

【问题讨论】:

标签: c fopen


【解决方案1】:

您可以使用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;
}

【讨论】:

  • 哇,这个 fscanf 太棒了!谢谢
猜你喜欢
  • 2012-10-29
  • 2020-08-01
  • 2021-03-21
  • 2010-10-13
  • 1970-01-01
相关资源
最近更新 更多