gpt4 book ai didi

c - 为什么在 printf 格式的 "#"之后宽度数字不能工作?

转载 作者:太空狗 更新时间:2023-10-29 16:05:53 26 4
gpt4 key购买 nike

我想得到数字 8 的“0x08”,但是当我使用“%#02x”时,我只得到 0x8:

int i = 0x08;
printf("%#02x", i); // only print 0x8, not 0x08

格式字符串中“#”后的宽度数字似乎不起作用。除了使用“0x%02x”之外,还有什么更好的方法来打印我想要的内容吗?

最佳答案

字段宽度包括#请求的“替代前缀”。

因此您可以使用:printf("%#04x", i); 来获得所需的效果。正如您已经提到的,我个人更喜欢 "0x%02x"

@R.. 推荐的另一种方法是使用最小精度 而不是字段宽度。对于整数,精度不包括前缀,并且在必要时始终用零填充,因此代码为 printf("%#.2x", i);

对于诸如 x 之类的整数说明符,. 之后的数字是最小精度 - 较长的数字不会被截断。这不同于 . float 和字符串的行为。

关于c - 为什么在 printf 格式的 "#"之后宽度数字不能工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39969538/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com