c - 如何在 C 中右填充十六进制

标签 c

所以我知道(经过大量令人困惑的谷歌搜索后),要右填充字符串,可以使用 fprintf("%-10s", string) 或类似的东西来填充最多 10 个长度的空格。

所以我有两个问题:

我知道 left-pad 是类似的,但是它的语法是什么? (抱歉,我用谷歌搜索了,但由于相互矛盾的答案而感到困惑......)

更重要的是,我如何右填充十六进制?假设我有一个 int,我想用 %02X 转换为十六进制。我还能使用 %-1002X 吗?这不会搞砸吗?

最佳答案

printf 转换格式允许您向左填充或向右填充转换结果,但不能同时进行两者。右填充整数转换与右填充其他任何内容相同 - 只需指定负字段宽度,例如 %-10x。您不能同时使用左填充和右填充:您只能在格式中指定一个宽度。您原来的 %02x 已明确使用左侧填充。您不能在此基础上添加右内边距。

但是,%02x 的目的似乎是生成至少包含 2 位数字的零填充输出。这可以通过使用格式的精度组件而不是使用宽度来实现。 %.2x 等格式也将成功生成 2 位十六进制转换。

通过使用精度而不是宽度,您可以将宽度留作填充用途。例如。像 %-10.2x 这样的格式将产生 2 位转换(用零填充),并用空格填充到 10 个字符。

关于c - 如何在 C 中右填充十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29324652/

相关文章:

c - 使用 malloc 为数组分配内存

c - 我的程序哪里出错了? (按年龄排序)

c - 如何正确使用可变函数

c - 了解管道/FIFO 是否已满

c - fprintf 没有打印到文件

在 C 中将字符串值转换为等效的 int

在matlab中调用C函数的变量地址

c - DGEMM 之后最后一行中的零值

c++ - "imitate"C++ 模板的 C 策略是什么?

c - STM32接收来自盖革计数器的输入