如何用一个printf打印多个字符?

Shi*_*der 6 c printf

我想使用打印多个字符printf.我到目前为止的做法是 -

#include <stdio.h>

int main()
{
    printf("%*c\n", 10, '#');

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但这只会在之前打印9个空格#.

我想像这样打印 -

##########
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何做到这一点.请帮我?

Dip*_*ipu 8

你不能用printf这样的方法在Ansi C中打印重复的字符.我建议你使用这样的循环 -

#include <stdio.h>

int main()
{
    int i;
    for(i = 0; i < 10; i++) putchar('#');

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

或者如果你绝对不想使用循环,你可以这样做 -

#include <stdio.h>
int main()
{
    char out[100];
    memset(out, '#', 10);
    out[10] = 0;
    printf("%s", out);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,这样使用printf也有效 -

#include <stdio.h>

int main()
{
    printf("%.*s", 10, "############################################");

    return 0;
}
Run Code Online (Sandbox Code Playgroud)


Lui*_*ado 5

如果您对要输出的字符数有上限,我认为最好的方法是:

printf("%.*s", number_of_asterisks_to_be_printed,
"**********************************************************************");
Run Code Online (Sandbox Code Playgroud)

我认为这也将是最有效、最便携的方式。