c语言中的%-06d和%06d

为什么%-06d用printf输出时不会补0而%06d会补0啊

%-06d用printf输出时,不会补0,因为%-06d表示的是左对齐,即结果左对齐,右边用空格填充,而%06d表示的是右对齐,即结果右对齐,左边用0填充。

  • %-06d 相当于 %-6d , 左对齐,不足右边补空格
  • %06d ,右对齐,不足左边补 0 【c语言就是这么定义的】
  • %6d,右对齐,不足左边补空格

-表示左对齐,在右边补空格,数字哪有在右边补0的

%-06d 有 ‘-’ 表示左对齐。供参考:https://baike.baidu.com/item/printf/7467706?fromtitle=printf%28%29&fromid=402521&fr=aladdin