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;
}