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