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_value
s...
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
。
所以我创建了一个这样的数据文件:
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_value
s...
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
。