gpt4 book ai didi

c - 使用 snprintf 打印受限的十六进制值

转载 作者:太空宇宙 更新时间:2023-11-04 00:37:27 25 4
gpt4 key购买 nike

#include <stdio.h>
#include <string.h>

main()
{
char buff[255];
snprintf(buff, 255, "%02x", 0xFFFFFF);
printf("%s\n", buff);
}

我期待上面的代码打印 ff(因为我给了 %02x)但是操作是 fffff。我做错了什么?

最佳答案

你的期望是错误的。

来自 the manual page for the *printf() family :

In no case does a nonexistent or small field width cause truncation of a field; if the result of a conversion is wider than the field width, the field is expanded to contain the conversion result.

您可以使用精度(“.N”)修饰符来截断字符串,但不能使用字段宽度:

printf("%2s and %.2s", "foo", "foo");

打印

foo and fo

您不能使用精度来截断整数。

关于c - 使用 snprintf 打印受限的十六进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26232022/

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