我是C语言的新手。 我的问题是如何在说明符中使用值(代表宽度说明符)。
int width_specifier = 1;
char* star = "*";
for (width_specifier;width_specifier<10;width_specifier++)
{
for (int j = 1;j<= width_specifier;j++)
{
printf("%width_specifier.s",star);//Problem is here
}
printf("\n");
}
答案 0 :(得分:2)
宽度说明符用于控制要写入的最小字节数。使用"%s"
,输出将填充' '
。
int main(void) {
for (int width_specifier = 1; width_specifier < 10; width_specifier++) {
printf("%*s\n", width_specifier, "*");
}
}
输出
*
*
*
*
*
*
*
*
*
要在每行without an inner loop中打印各种数量的*
,代码可以传递 precision 来限制要用".*s"
写入的最大字节数。
int main(void) {
for (int width_specifier = 1; width_specifier < 10; width_specifier++) {
int precision = width_specifier;
printf("%.*s\n", precision, "**********");
}
}
输出
*
**
***
****
*****
******
*******
********
*********
答案 1 :(得分:0)
如果您阅读例如this printf
(and family) reference,您会看到它是(关于要打印的内容的一种有趣的思考)... star 。
这意味着将读取int
参数作为字段宽度。
如
printf("%*s\n", j, star);
答案 2 :(得分:-1)
答案 3 :(得分:-2)
printf("width_specifier = %c",star);
以及其他格式:regexr.com/2rhq7