我正试图找到一种打印前导0的好方法,比如01001代表ZIP Code.虽然数字将存储为1001,但有什么好办法?

我曾想过使用case条语句或if来计算数字的位数,然后将其转换为char数组,再加上额外的0以供打印,但我不禁想到,也许有一种方法可以使用printf格式语法来实现这一点,而我却无法做到这一点.

推荐答案

printf("%05d", zipCode);

0表示填充的内容,5表示整数的宽度.

示例1:如果使用"%02d"(对日期很有用),则在"1"列中,数字只需填充零.例如,06而不是6.

示例2:"%03d"将为1列中的一个数字填充2个零,为10列中的数字填充1个0.例如,数字7填充到007,数字17填充到017.

C++相关问答推荐

错误:八进制常数中的数字9无效

char为16位且Short也为16位的c环境合法吗

如何避免使用相对路径包含在c中

ISO_C_BINDING,从Fortran调用C

为什么输出不是从上到下C

堆栈帧和值指针

如何使fputs功能提示错误输入并要求用户重新输入.程序停止而不是请求新的输入

从纯C中访问通用项对话框

LibpCap禁用监视器模式(C、MacOS)

在C23中使用_GENERIC实现带有右值的IS_POINTER(P)?

如何在C语言中正确打印图形

对于C中给定数组中的每个查询,如何正确编码以输出给定索引范围(1到N)中所有数字的总和?

为什么memcpy进入缓冲区和指向缓冲区的指针工作相同?

是否可以通过调用两个函数来初始化2D数组?示例:ARRAY[STARTING_ROWS()][STARTING_COLUMNS()]

#定义SSL_CONNECTION_NO_CONST

如何在C++中安全地进行浮点运算

C23标准是否向后兼容?

变量值不正确的问题

关于不同C编译器中的__attribute__支持

如何在Rust中处理C的longjmp情况?