值开头的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 并不表示前面有01,而是表示使用八进制表示法写1。因此010 将打印8。一般来说,不要假设语言会按照你想要的方式工作,而是要了解它的实际工作方式。 您想将数字保存为字符串吗?如果您不必在其他地方使用它,它可能是最灵活的解决方案 【参考方案1】:

使用左填充格式字符串。

解决方案

int var = 1;
printf("%02d", var);

【讨论】:

你能给我解释一下什么是填充? 填充是添加一些东西(在输入/输出中,主要是 0)外部内核部分。 如果我有 var = 13 的值,它还会填充 0 吗?? 不,它将打印13。因为我们已将长度指定为 2(in %02d)。

以上是关于值开头的0未显示在输出中[重复]的主要内容,如果未能解决你的问题,请参考以下文章

以0开头的值初始化long long会导致奇怪的值[重复]

php 5,for循环没有正确显示以0开头的数字系列[重复]

matplotlib轴未显示完整值[重复]

XSLT Transformer 未显示数据 [重复]

leetcode第三题 无重复的最长字串

线性搜索未返回预期输出[重复]