scanf的一些小細節

2021-07-24 13:16:36 字數 836 閱讀 5371

格式字串的一般形式為:

%[*][輸入資料寬度][長度]型別

其中有方括號的項為任選項。各項的意義如下。

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 上面語句等同...