C语言 格式说明符的问题



我不明白%02lu这样的声明中数字的含义。如果我把一个lu类型的数写成%lu会怎么样?我正在把这个数字写在文件上。这种格式中使用我的代码写一个长长的int文件使用DBGPRINT

如果您键入"man printf";进入搜索引擎,第一个命中应该是Linux手册页。它说:

0该值应该填充为0。对于d i o u x x a,A、e、e、f、f、g、g转换,即转换后的值在左侧用零而不是空格填充。如果0和-标志同时出现,0标志被忽略。如果精度通过数字转换(d, i, o,u, x,和x), 0标志被忽略。为其他转换时,行为未定义。

那么这告诉你第一个0是用于小于其字段宽度的零填充值。

然后,在手册页的下面一点:

字段宽度可选的十进制数字字符串(第一位非零)指定最小字段宽度。如果转换后的值具有少于字段宽度的字符,它将被填充左侧的空格(或右侧,如果左调整标志有得到)。[…]

因此,%02ld是一个转换说明符,它将长整数转换为十进制形式,同时确保任何需要少于2个字符的值都是零填充的。

相关内容

  • 没有找到相关文章

最新更新