fscanf用浮点数输入

时间:2011-03-02 00:19:25

标签: c scanf

我正在阅读包含以下内容的文本文件:

Mary 55334422 24.90 56.6 45.68

我正在阅读:

....char name[20]; int num; double worked; double rate; double total;....

fscanf(fp, "%s %d %f %f %f\n", name, &num, &worked, &rate, &total);

我得到的名称和整数都很好,但是浮点数就像-95229999900000000000000000000.00

我在这里做错了吗?

3 个答案:

答案 0 :(得分:13)

您需要使用format for a double%lf,而不是使用浮动%f ...或更改为浮点数而不是双打。

答案 1 :(得分:5)

尝试lf而不是f来解析为双变量:

fscanf(fp, "%s %d %lf %lf %lf\n", name, &num, &worked, &rate, &total);

答案 2 :(得分:1)

将您的双打更改为浮点数,或将格式更改为%lf