对于intN_t
和%"PRIiN"
个函数系列,%"SCNiN"
类型有新的格式说明符,例如printf
和scanf
。
float_t
和double_t
的新格式说明符是什么(如果有)? (在math.h
中定义)
我可以 - 使用%f
和%lf
吗?我不这么认为,因为float_t
至少与float
一样大,但可以定义为long double
。
由于没有人回答,我无法在任何地方找到答案,可能是C中的错误吗?
答案 0 :(得分:1)
为了保持谨慎和便携,您可以在%Lf
控制字符串{@ 1}}中将printf
或float_t
类型的值转换为double_t
。
<强>编辑:强>
long double的格式说明符是long double
而不是%Lf
你必须对scanf更加谨慎,因为在这种情况下,施法不会帮助你。
或者,您可以为%lf
和printf
定义自己的scanf
和float_t
格式说明符,并使用double_t
[1 ]宏,找出FLT_EVAL_METHOD
和float_t
分别等同的内置类型。
答案 1 :(得分:0)
这些在标准中不存在,因此您必须使用select
a.*, p.*
from appointment a inner join patient p
on p.pno = a.pno
where p.username = '$username'
and weekstart = ? -- you can remove this if you don't need it.
(C11 7.12.2)自己定义它们。
我将共享在库中编写的代码:
FLT_EVAL_METHOD
然后您应该能够:
#if (FLT_EVAL_METHOD == 0)
#define PRIaFLT "a"
#define PRIAFLT "A"
#define PRIeFLT "e"
#define PRIEFLT "E"
#define PRIfFLT "f"
#define PRIFFLT "F"
#define PRIgFLT "g"
#define PRIGFLT "G"
#define SCNaFLT "a"
#define SCNeFLT "e"
#define SCNfFLT "f"
#define SCNgFLT "g"
#define PRIaDBL "la"
#define PRIADBL "lA"
#define PRIeDBL "le"
#define PRIEDBL "lE"
#define PRIfDBL "lf"
#define PRIFDBL "lF"
#define PRIgDBL "lg"
#define PRIGDBL "lG"
#define SCNaDBL "la"
#define SCNeDBL "le"
#define SCNfDBL "lf"
#define SCNgDBL "lg"
#elif (FLT_EVAL_METHOD == 1)
#define PRIaFLT "la"
#define PRIAFLT "lA"
#define PRIeFLT "le"
#define PRIEFLT "lE"
#define PRIfFLT "lf"
#define PRIFFLT "lF"
#define PRIgFLT "lg"
#define PRIGFLT "lG"
#define SCNaFLT "la"
#define SCNeFLT "le"
#define SCNfFLT "lf"
#define SCNgFLT "lg"
#define PRIaDBL "la"
#define PRIADBL "lA"
#define PRIeDBL "le"
#define PRIEDBL "lE"
#define PRIfDBL "lf"
#define PRIFDBL "lF"
#define PRIgDBL "lg"
#define PRIGDBL "lG"
#define SCNaDBL "la"
#define SCNeDBL "le"
#define SCNfDBL "lf"
#define SCNgDBL "lg"
#elif (FLT_EVAL_METHOD == 2)
#define PRIaFLT "La"
#define PRIAFLT "LA"
#define PRIeFLT "Le"
#define PRIEFLT "LE"
#define PRIfFLT "Lf"
#define PRIFFLT "LF"
#define PRIgFLT "Lg"
#define PRIGFLT "LG"
#define SCNaFLT "La"
#define SCNeFLT "Le"
#define SCNfFLT "Lf"
#define SCNgFLT "Lg"
#define PRIaDBL "La"
#define PRIADBL "LA"
#define PRIeDBL "Le"
#define PRIEDBL "LE"
#define PRIfDBL "Lf"
#define PRIFDBL "LF"
#define PRIgDBL "Lg"
#define PRIGDBL "LG"
#define SCNaDBL "La"
#define SCNeDBL "Le"
#define SCNfDBL "Lf"
#define SCNgDBL "Lg"
#endif