【问题标题】:sscanf for doubles双打的 sscanf
【发布时间】:2010-04-25 01:20:27
【问题描述】:

这是一个简单的问题,但我看不到:

字符 *s = "f 8.649292" ; 双 d ; sscanf( s, "f %f", &d ) ; printf("d 是 %f\n", d);

为什么d 不包含双精度值8.649292

【问题讨论】:

    标签: c scanf


    【解决方案1】:

    哦,等等,没关系。 d 必须是float

    为了让它发挥作用,你可以使用 %lf 作为双倍

    字符 *s = "f 8.649292" ; 双 d ; sscanf( s, "f %lf", &d ) ; printf("d 是 %lf\n", d ) ;

    【讨论】:

    • %lf 是使用scanf 扫描双精度所需的,但将%lfprintf 一起使用是不正确的。只需使用%f
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-19
    • 2015-06-16
    • 1970-01-01
    • 2015-07-20
    • 2022-01-09
    相关资源
    最近更新 更多