❶ c語言中{}作用
取決於在scanf中使用還是在printf中使用。
在scanf中使用,則添加了*的部分會被忽略,不會被參數獲取。
例如:int a,b;char b[10];scanf("%d%*s",&a,b);輸入為:12 abc那麼12將會讀取到變數a中,但是後面的abc將在讀取之後拋棄,不賦予任何變數(例如這里的字元數組b)
在printf中使用,表示用後面的形參替代的位置,實現動態格式輸出。
例如:
printf("%*s",10,s);/意思是輸出字元串s,但至少佔10個位置,不足的在字元串s左邊補空格,這里等同於printf("%10s",s);/
(1)c語言中的擴展閱讀:
C語言%*s用法
1、在scanf中使用,則添加了*的部分會被忽略(跳過),不會被參數獲取。
例如:
int a,b;
char b[10];
scanf("%d%*s",&a,b);
輸入為:
12 abc
那麼12將會讀取到變數a中,但是後面的abc將在讀取之後拋棄,不賦予任何變數(例如這里的字元數組b)
用*和掃描集配合,可以從輸入中只選出需要的內容,而忽略其餘的東西。
另外,也常用於清空緩沖區。
2、在printf中使用,*表示用後面的形參替代*的位置,實現動態格式輸出。
例如:
printf("%*s", 10, s); /*意思是輸出字元串s,但至少佔10個位置,不足的在字元串s左邊補空格,這里等同於printf("%10s", s);*/
printf("%.*s
",int,str) ;
// %.*s 其中的.*表示顯示的精度 對字元串輸出(s)類型來說就是寬度
// 這個*代表的值由後面的參數列表中的整數型(int)值給出
例如:
printf("%.*s ", 1, "abc");// 輸出a
printf("%.*s ", 2, "abc");// 輸出ab
printf("%.*s ", 3, "abc");// 輸出abc >3是一樣的效果 因為輸出類型type = s,遇到'