c - 读取数据文件中的特定列

c - reading a specific column in data file

所以我创建了一个这样的数据文件:

for(size_t n = ...;...;...){
    //do some stuff
    double mean_value = ...
    double min_value = ...
    double max_value = ...

    FILE *fp = fopen(OUTPUT_FILE,"a+");
    fprintf(fp,"%d %lf %lf %lf\n",n,mean_value, min_value, max_value);
    fclose(fp);
}

现在我想阅读我写的 mean_values...

FILE *fp = fopen(OUTPUT_FILE,"a+");
double *means = malloc(...);
for(size_t i = 0; ...; ...){
    fscanf(fp,"%*d %lf %*lf %*lf\n", &means[i]);
}
//more stuff
fprintf(fp,...);
fclose(fp);

gcc 抱怨说:

warning: use of assignment suppression and length modifier together in gnu_scanf format [-Wformat=]

fscanf(fp,"%*d %lf %*lf %*lf\n", &means[i]);

         ^

我不确定它想告诉我什么,在这里。

格式字符串中的长度说明符(即lf中的l)用于指示接收参数的大小,以防分配,而f说明如何输入应该看起来像。这意味着为被抑制的字段指定长度是没有意义的,您的编译器只是试图确保您没有错误地键入 * 而不是 %。只需从抑制字段中删除 l