使用来自另一个CSV的操纵数据创建CSV

时间:2018-09-03 10:44:30

标签: c csv pointers struct

所以我有来自CSV的数据,我已将其添加到Struct数组中(如下所示)。现在,我想在另一个CSV文件中输出这些值的最小值和最大值。

typedef struct {
    double xvalue;
    double yvalue;
    double uvalue;
    double vvalue;
} flow_data;

我已经打印出这些值,这些值都可以使用,但是我想将其输出到CSV文件中,确切地说是在这里输出的方式。我将如何去做?告诉我有关该程序的更多信息。

flow_data* z = &dataset[ivalueofmaxu];
printf("%.7f, %.7f, %.7f, %.7f\n", z->xvalue, z->yvalue, z->uvalue, z->vvalue);

z = &dataset[ivalueofminu];
printf("%.7f, %.7f, %.7f, %.7f\n", z->xvalue, z->yvalue, z->uvalue, z->vvalue);

z = &dataset[ivalueofmaxv];
printf("%.7f, %.7f, %.7f, %.7f\n", z->xvalue, z->yvalue, z->uvalue, z->vvalue);

z = &dataset[ivalueofminv];
printf("%.7f, %.7f, %.7f, %.7f\n", z->xvalue, z->yvalue, z->uvalue, z->vvalue);

3 个答案:

答案 0 :(得分:1)

使用fprintf代替printf<stdio.h>标头)。

但是首先您需要以写入模式打开所需的文件:

FILE * fp = fopen("testfile.csv", "w");

然后使用指向先前打开的文件的指针,您可以轻松地向其中写入值:

flow_data* z = &dataset[ivalueofmaxu];
fprintf(fp, "%.7f, %.7f, %.7f, %.7f\n", z->xvalue, z->yvalue, z->uvalue, z->vvalue);

z = &dataset[ivalueofminu];
fprintf(fp, "%.7f, %.7f, %.7f, %.7f\n", z->xvalue, z->yvalue, z->uvalue, z->vvalue);

z = &dataset[ivalueofmaxv];
fprintf(fp, "%.7f, %.7f, %.7f, %.7f\n", z->xvalue, z->yvalue, z->uvalue, z->vvalue);

z = &dataset[ivalueofminv];
fprintf(fp, "%.7f, %.7f, %.7f, %.7f\n", z->xvalue, z->yvalue, z->uvalue, z->vvalue);
fclose(fp); // remember to close it after you are done

如您所见,主要区别是带有指向FILE指针的附加参数。

答案 1 :(得分:1)

您可以使用PAYPAL_ID打印到文件中。 语法是

fprintf

int fprintf(FILE *stream, const char *format, ...) 是文件流。使用*stream来获取文件流,如下所示。

fopen

答案 2 :(得分:0)

您只需要将输出写入新的CSV文件中,将数据写入CSV文件没有什么特别的,您只需要保留语法(可接受的分隔符是逗号',而不是分号';'。 ),您应该可以。 我建议您使用fprintf来做到这一点,这里有一个示例。 http://www.cplusplus.com/reference/cstdio/fprintf