c - 在 printf 中用星号填充?

标签 c printf

我搜索了高低,但在 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);
}

关于c - 在 printf 中用星号填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7142914/

相关文章:

c - 显示一些小数位 C

c - 格式化带有多个百分号的字符串

c - 使物理地址区域中的虚拟地址连续如何提高性能?

c - 调用 yylex() 后全局指针设置为 NULL

c - 在 Go 程序中使用 C 代码时未声明的标识符

java - 为什么 C 和 Java 对 float 的舍入方式不同?

c - 在C中的fprintf上保存多个不同名称的文件

更改 "Restrict"ed 指针的顺序会产生不同的程序集

HTTP/1.1 Body 可以包含像 "\r\n"这样的字符串吗?

c - 为什么 printf ("test");没有给出任何错误?