当我们使用时,printf
我们可以这样写:
int i = 1;
printf("%06d" i);
然后我得到了000001
,0
填充空间
那么有没有办法我可以使用其他字符-
来填充空间而不是0
?
它看起来不像是具有printf
家庭功能的选项:您的选择有 zeros'0'
或 spaces ' '
。如果必须用其他字符填充,则需要自己执行转换。
一种方法是使用sprintf
空格填充打印到 6 个字符的缓冲区,然后用 dashes 替换空格'-'
,如下所示:
char buf[12]; // 11 for the number plus one for the terminator
sprintf(buf, "%6d", i);
char *p = buf;
while (*p == ' ') {
*p++ = '-';
}
printf("%s", buf);