带浮点数的 fscanf 输入

发布于 2024-10-19 23:57:25 字数 366 浏览 1 评论 0原文

我正在从包含以下内容的文本文件中读取:

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);

我得到了名称和整数,但是浮点数的结果类似于 -9522999990000000000000000000.00

我在这里做错了什么吗?

I'm reading from a text file which contains:

Mary 55334422 24.90 56.6 45.68

and am reading it in:

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

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

I'm getting the name and the integer fine, but the floating point numbers come out something like -9522999990000000000000000000.00

Am I doing something wrong here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

独自←快乐 2024-10-26 23:57:25

您需要使用双精度格式%lf ,而不是浮点数 %f...或者更改为浮点数而不是双精度数。

You need to use the format for a double: %lf, rather than that for a float %f... or change to floats instead of doubles.

强辩 2024-10-26 23:57:25

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

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

Try lf instead of f to parse into double variables:

fscanf(fp, "%s %d %lf %lf %lf\n", name, &num, &worked, &rate, &total);
生生漫 2024-10-26 23:57:25

将双精度数更改为浮点数,或将格式更改为 %lf

Change your doubles to floats, or change your format to %lf

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文