如何从c中的文件中读取特定数据列

美好的一天,

我是c编程的初学者.我遇到了这个问题并且已经花了相当多的时间在它上面而没有任何可观的进展.

我的问题是这样说的:

我有一系列扩展名为(.msr)的文件,它们包含十个参数的测量数值,这些参数的范围从日期,时间,温度,压力……,用分号分隔.
数据值的示例如下所示.

2010-03-03 15:55:06; 8.01; 24.9; 14.52; 0.09; 84; 12.47;
2010-03-03 15:55:10; 31.81; 24.9; 14.51; 0.08; 82; 12.40;
2010-03-03 15:55:14; 45.19; 24.9; 14.52; 0.08; 86; 12.32;
2010-03-03 15:55:17; 63.09; 24.9; 14.51; 0.07; 84; 12.24;

每个文件都有一个名称REG_2010-03-03,REG_2010-03-04,REG_2010-03-05,……它们都包含在一个文件中.

>我想从每个文件中提取日期信息,在本例中为2010-03-03,第3列和第6列.
>找到3和6中每列的统计平均值.
>然后将结果存储在一个新文件中,该文件仅包含日期和上面列的计算平均值,以便进一步分析.

它们用c写成.

我真的在计算或者你的帮助,以便继续这样做.

问候

最佳答案 这是一个起点:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
    char str[] = "2010-03-03 15:55:06; 8.01; 24.9; 14.52; 0.09; 84; 12.47;";
    char *date, *tmp;
    double mean = 0;
    int i;

    date = strtok(str, " ");
    strtok(NULL, " "); // skip over time
    while (tmp = strtok(NULL, ";")) {
        ++i;
        if (i == 3 || i == 6) { // get only the 3rd and 6th value
            mean += strtod(tmp, NULL);
        }
    }
    mean /= 2;

    printf("%s: %.2f\n", date, mean);

    return 0;
}

你只需要为每一行做类似的事情.

点赞