1

当我们使用时,printf 我们可以这样写:

int i = 1;
printf("%06d" i);

然后我得到了0000010填充空间

那么有没有办法我可以使用其他字符-来填充空间而不是0

4

1 回答 1

3

它看起来不像是具有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);
于 2013-09-10T15:54:37.673 回答