使用来自其他CSV的操纵数据创建CSV

问题描述 投票:0回答:3

所以我有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);
c csv pointers struct
3个回答
1
投票

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

int fprintf(FILE *stream, const char *format, ...)

其中*stream是文件流。使用fopen获取文件流,如下所示。

FILE * fp;

fp = fopen ("someother.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);

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的附加参数。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.