1

我想'*'在我给出否决的地方重复打印一个字符。星号应该重复的次数。

示例: count = 20并且我想********************使用printf()格式说明符进行打印。

4

3 回答 3

2

当然,仅使用格式说明符是无法实现的。您可以将循环隐藏在宏中,但您肯定需要某个地方的循环。

于 2020-08-26T07:10:21.423 回答
1

您不能使用printf(). 但是,如果您愿意浪费一些空间在程序中存储填充字符串,则有一个 hacky 解决方案(假设最大填充长度是合理的)。

#include <stdio.h>

int main(void) {
    const char *fill = "********************"; // 20 chars

    printf("%.*s\n", 10, fill);
    printf("%.*s\n", 15, fill);

    int n = 20;
    printf("%.*s\n", n, fill);

    return 0;
}

.*用于提供要打印的字符串的最大长度作为第一个参数。

输出:

**********
***************
********************

注意:你最多只能得到strlen(fill)填充字符(在上面的例子中是 20 个),还有更多,并且printf会停\0fill.

于 2020-08-26T07:20:45.403 回答
0

我希望这是您正在寻找的:

#include <stdio.h>
int main()
{
printf("%.*s", 20, "********************************");;
  return 0;
}
于 2020-08-26T07:53:41.280 回答