我搜索过高和低,但在C中的printf中,似乎只有零填充和空白填充.我想写自己的填充,在这种情况下使用星号.
例如,
假设宽度为8个字符.
输入:123
输出:**123.00
输入:3
输出:****3.00
我怎样才能做到这一点?
最简单的方法可能是使用snprintf()空格填充打印到缓冲区中,然后用星号替换空格:
void print_padded(double n)
{
char buffer[9];
char *p;
snprintf(buffer, sizeof buffer, "% 8.2f", n);
for (p = buffer; *p == ' '; p++)
*p = '*';
printf("%s", buffer);
}
Run Code Online (Sandbox Code Playgroud)