值开头的0未显示在输出中[重复]
Posted
技术标签:
【中文标题】值开头的0未显示在输出中[重复]【英文标题】:0 at the begining of value isnt shown in the output [duplicate] 【发布时间】:2020-11-12 08:54:48 【问题描述】:我的问题很简短,如果我有以下 2 行代码:
int var = 01;
printf("%d", var);
输出为:1
我如何得到 01 而不是 1?
【问题讨论】:
请注意,01
并不表示前面有0
的1
,而是表示使用八进制表示法写1。因此010
将打印8
。一般来说,不要假设语言会按照你想要的方式工作,而是要了解它的实际工作方式。
您想将数字保存为字符串吗?如果您不必在其他地方使用它,它可能是最灵活的解决方案
【参考方案1】:
使用左填充格式字符串。
解决方案
int var = 1;
printf("%02d", var);
【讨论】:
你能给我解释一下什么是填充? 填充是添加一些东西(在输入/输出中,主要是 0)外部内核部分。 如果我有 var = 13 的值,它还会填充 0 吗?? 不,它将打印13
。因为我们已将长度指定为 2
(in %02d
)。以上是关于值开头的0未显示在输出中[重复]的主要内容,如果未能解决你的问题,请参考以下文章