我想重复打印一个字符'*'
,其中我给出了星号应该重复的次数。
示例:count = 20
和我希望使用printf()
和格式说明符打印********************
仅使用格式说明符肯定无法实现这一点。你可以在宏中隐藏你的循环,但你肯定需要一个循环。
使用printf()
提供的标准格式说明符无法做到这一点。然而,如果您愿意在程序中浪费一些空间来存储填充字符串,那么有一个棘手的解决方案(假设最大填充长度是合理的(。
#include <stdio.h>
int main(void) {
const char *fill = "********************"; // 20 chars
printf("%.*sn", 10, fill);
printf("%.*sn", 15, fill);
int n = 20;
printf("%.*sn", n, fill);
return 0;
}
这使用.*
来提供要打印的字符串的最大长度作为第一个参数。
输出:
**********
***************
********************
注意:您最多只能得到strlen(fill)
个字符的填充(上例中为20个(,除此之外,printf
将停止在fill
的