我正在尝试确定如何在每个新行上用2 *(i-1)空格打印我的值。
我看到代码以完美的对角线打印出来,如下所示:
#include<stdio.h>
int main ()
{
int i=0,s=0;
char c[50];
printf("Enter a string: ");
scanf("%s",c);
while(c[i] != '\0')
{
s = i;
while(s--)
printf(" ");
printf("%c\n",c[i]);
i++;
}
return 0;
}
但是,我正在寻找一些不同的东西,下面的代码打印出每个新行上有2 *(i-1)空格的值:
for(i=0; i<5; i++){
char value = j + 'A';
printf("%c", value);
}
我希望每个值之间都有2 *(i-1)个空格。
有什么建议吗?谢谢。
答案 0 :(得分:4)
您可以使用通配符在printf
中轻松控制字段宽度。当*
出现在格式的开头(%
之后)时,它将下一个参数作为其值,以格式化字段宽度。例如
printf("%*c", wid, ch);
将在ch
为wid
的宽wid
字段中右对齐int
。如果您想要左对齐,请像往常一样添加-
(或在wid
中提供负值)。
printf("%-*c", wid, ch);