scanf函数中的格式控制符:%*c
其中%c是读一个字符,而中间的*号是跳过一个字符。意思就是读取一个字符但并不赋值给变量。
下面是详细的格式说明,请参考:
%a-----------------读入一个浮点值(仅C99有效)
%A-----------------同上
%c-----------------读入一个字符
%d-----------------读入十进制整数
%i-----------------读入十进制,八进制,十六进制整数
%o-----------------读入八进制整数
%x-----------------读入十六进制整数
%X-----------------同上
%c-----------------读入一个字符
%s-----------------读入一个字符串
%f-----------------读入一个浮点数
%F-----------------同上
%e-----------------同上
%E-----------------同上
%g-----------------同上
%G-----------------同上
%p-----------------读入一个指针
%u-----------------读入一个无符号十进制整数
%n-----------------至此已读入值的等价字符数
%[]----------------扫描字符集合
%%-----------------读%符号
附加格式说明字符表修饰符
L/l:长度修饰符----输入"长"数据
h:长度修饰符------输入"短"数据
W:整型常数--------指定输入数据所占宽度
*: 星号-----------空读一个数据函数
ps:回车属于字符!!!!!spa
//字母倒三角指针
#include <stdio.h>
code
int
main(
int
argc,
char
*argv[])
{
char
c
,i,j;
scanf
(
"%c%*c"
,&c); //%*c吃掉回车,不然没法输出字母三角
while
(c!=
'#'
)
{
printf
(
"case %d:\n"
,c);
for
(i=c;i>=
'A'
;i--)
{
printf
(
"%*s"
,c-i,
""
); //意思是输出c-i个空格 ps:
printf("%*s", 10, s); /*意思是输出字符串s,但至少占10个位置,不足的在字符串s左边补空格,这里等同于printf("%10s", s);*/(*s用法)
for
(j=
'A'
;j<=i;j++)
printf
(
"%c"
,j);
for
(j-=2;j>=
'A'
;j--) //for运行机制
第三个表达式从第一次执行循环开始就在每次循环结束后执行一次
printf
(
"%c"
,j);
printf
(
"\n"
);
}
scanf
(
"%c%*c"
,&c);
}
return
0;
}