float_t和double_t格式说明符

对于printf和scanf系列函数,intN_t类型有新的格式说明符,例如%“PRIiN”和%“SCNiN”.

如果有的话,float_t和double_t的新格式说明符是什么? (在math.h中定义)

我可以 – 使用%f和%lf吗?我不这么认为,因为float_t只是至少和float一样大,但可以定义为long double.

没有人回答,我在任何地方找不到答案,可能是C中的错误?

最佳答案 为了谨慎和便携,你可以在你的printf控制字符串中使用%Lf,并将float_t或double_t类型的值转换为long double.

编辑:
long double的格式说明符是%Lf而不是%lf

你必须对scanf更加谨慎,因为在这种情况下,施法对你没有帮助.

或者,您可以为float_t和double_t定义自己的printf和scanf格式说明符,利用FLT_EVAL_METHOD [1]宏来找出float_t和double_t分别等效的内置类型.

点赞