格式字串的一般形式為:
%[*][輸入資料寬度][長度]型別
其中有方括號的項為任選項。各項的意義如下。
1) 型別
表示輸入資料的型別,其格式符和意義如下表所示。
格式字元意義
d輸入十進位制整數
o輸入八進位制整數
x輸入十六進製制整數
u輸入無符號十進位制整數
f或e輸入實型數(用小數形式或指數形式)
c輸入單個字元
s輸入字串
2) 「*」符
用以表示該輸入項,讀入後不賦予相應的變數,即跳過該輸入值。如:
scanf("%d %*d %d"
,&a,&b);
當輸入為:1 2 3時,把1賦予a,2被跳過,3賦予b。
3) 寬度
用十進位制整數指定輸入的寬度(即字元數)。例如:
scanf("%5d"
,&a);
輸入12345678只把12345賦予變數a,其餘部分被截去。又如:
scanf("%4d%4d"
,&a,&b);
輸入12345678將把1234賦予a,而把5678賦予b。
4) 長度
長度格式符為l和h,l表示輸入長整型資料(如%ld)和雙精度浮點數(如%lf)。h表示輸入短整型資料。
輸入字串中有空格時候 可以用%[^\n]
scanf函式中沒有精度控制,如:scanf("%5.2f",&a);是非法的。不能企圖用此語句輸入小數為2位的實數。
Scanf函式的一些小細節
scanf函式式c語言的基本輸入函式,對於很對接觸過c語言的人都不會感到陌生,可是對於這個最基本的輸入函式,卻隱藏著一些容易讓人出錯的細節。1 函式原型 int scanf constchar format,2 format format 指向的控制串由以下三類 字元組成 格式控制符 空白字元 非空...
一些小細節
1 c中printf計算引數時是從右到左壓棧的。定義乙個陣列 int arr 再定義乙個指標 sint prt arr printf d n ptr 此時ptr指向第乙個元素6 ptr 123展開為 ptr ptr 123 ptr 此時ptr指向第二個元素7 printf d,d n ptr,ptr...
response一些小細節
1 response 向客戶機輸出資料。2 位元組流 outputstream 可以輸出任何的資料,而字元流 writer 只能寫字元資料 3 respone.setheader content type text html charset utf 8 控制瀏覽器,指定編碼是utf 8 上面語句等同...