c - 将 csv 文件中的浮点值写入新文件并遍历字段

c - writing float values from csv file into new file & iterating through field

所以基本上我有一个单独的 csv 文件,其中包含不同的列,重点关注冰淇淋配料和特定 sizes/measurements。在我名为 convert.c 的程序中,我正在尝试编写一个程序,该程序从 csv 文件中读取数据并将数据写入一个名为 toppings.bin 的新文件中并进行更改。 csv 文件中的一列包含不同冰淇淋样品的重量(等 12.3)。我想要做的是进行测量并将此数据作为浮点数写入 toppings.bin 文件。当我尝试更改我的代码和 运行 中的数据类型时,我的 toppings.bin 文件中的权重全部变为 0.00000 而不是它们在 csv 文件中指定的值。任何有关如何解决此问题的帮助将不胜感激。

权重列表示为字段 3。

convert.c:

while(fgets(buf, lineCount, fd){
    char *one = getfield(buf, 1);
    char *two = getfield(buf, 2);
    float *three = getfield(buf, 3);
    if(one && two && three && strcmp(first, "Ice cream") == 0){
      fprintf(ft, "%s %f\n", two, three);
    }
}

char * 无法通过 fprintf 转换为 float。如果三是表示浮点数的字符串,则需要使用 sscanf.

对其进行转换

float weight = 0;
sscanf(three,"%f", &weight);
....
fprintf(ft, "%f", weight);

旁注答案:

也许在处理时保持 运行 总数?或者将所有权重存储在一个浮点数组中,稍后再求和。