当我们使用printf
时,我们可以写下:
int i = 1;
printf("%06d" i);
然后我得到了000001
,0
填了空格
那么我可以使用-
这样的其他字符填充空格而不是0
吗?
答案 0 :(得分:3)
看起来这不是printf
系列功能的选项:您的选择有零'0'
或空格' '
。如果您必须使用其他角色填充,则需要自行执行转换。
这样做的一种方法是使用sprintf
打印到带有空格填充的6字符缓冲区,然后用短划线'-'
替换空格,如下所示:
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);