scanf的格式說明符代表什麼意思

2021-12-25 02:11:10 字數 6681 閱讀 6941

1樓:

對於樓主的說明有多種理解,我主要找了三個這方面的知道,你可以看下.

呵呵,% 格式控制,就是說明你要輸入的是什麼型別的數

scanf("%d",&a);就是輸入整形資料 a

%c 讀入一個字元

%d 讀入十進位制整數

%i 讀入十進位制,八進位制,十六進位制整數

%o 讀入八進位制整數

%x,%x 讀入十六進位制整數

%s 讀入一個字串,遇空格、製表符或換行符結束。

%f,%f,%e,%e,%g,%g 用來輸入實數,可以用小數形式或指數形式輸入。

%p 讀入一個指標

%u 讀入一個無符號十進位制整數

%n 至此已讀入值的等價字元數

% 掃描字符集合

%% 讀%符號

scanf()函式接收鍵盤輸入的字元,無論是什麼型別的經過格式轉換都轉化為對應的二進位制資料,儲存在記憶體中。

格式字元

格式字元用以指定輸出項的資料型別和輸出格式。

①d格式:用來輸出十進位制整數。有以下幾種用法:

%d:按整型資料的實際長度輸出。

%md:m為指定的輸出欄位的寬度。如果資料的位數小於m,則左端補以空格,若大於m,則按實際位數輸出。

%ld:輸出長整型資料。

②o格式:以無符號八進位制形式輸出整數。對長整型可以用"%lo"格式輸出。同樣也可以指定欄位寬度用「%mo」格式輸出。

例:main()

執行結果:-1,177777

程式解析:-1在記憶體單元中(以補碼形式存放)為(1111111111111111)2,轉換為八進位制數為(177777)8。

③x格式:以無符號十六進位制形式輸出整數。對長整型可以用"%lx"格式輸出。同樣也可以指定欄位寬度用"%mx"格式輸出。

④u格式:以無符號十進位制形式輸出整數。對長整型可以用"%lu"格式輸出。同樣也可以指定欄位寬度用「%mu」格式輸出。

⑤c格式:輸出一個字元。

⑥s格式:用來輸出一個串。有幾中用法

%s:例如:printf("%s", "china")輸出"china"字串(不包括雙引號)。

%ms:輸出的字串佔m列,如字串本身長度大於m,則突破獲m的限制,將字串全部輸出。若串長小於m,則左補空格。

%-ms:如果串長小於m,則在m列範圍內,字串向左靠,右補空格。

%m.ns:輸出佔m列,但只取字串中左端n個字元。這n個字元輸出在m列的右側,左補空格。

%-m.ns:其中m、n含義同上,n個字元輸出在m列範圍的左側,右補空格。如果n>m,則自動取n值,即保證n個字元正常輸出。

⑦f格式:用來輸出實數(包括單、雙精度),以小數形式輸出。有以下幾種用法:

%f:不指定寬度,整數部分全部輸出並輸出6位小數。

%m.nf:輸出共佔m列,其中有n位小數,如數值寬度小於m左端補空格。

%-m.nf:輸出共佔n列,其中有n位小數,如數值寬度小於m右端補空格。

⑧e格式:以指數形式輸出實數。可用以下形式:

%e:數字部分(又稱尾數)輸出6位小數,指數部分佔5位或4位。

%m.ne和%-m.ne:m、n和」-」字元含義與前相同。此處n指資料的數字部分的小數位數,m表示整個輸出資料所佔的寬度。

⑨g格式:自動選f格式或e格式中較短的一種輸出,且不輸出無意義的零。

幫你找了好多了,這方面的知識.呵呵,

2樓:匿名使用者

#include

int main()

輸入:4.5%

輸出:4.500000

在輸入流中把%剔除了

3樓:匿名使用者

% 格式控制,就是說明你要輸入的是什麼型別的數scanf("%d",&a);就是輸入整形資料 a%c 讀入一個字元

%d 讀入十進位制整數

%i 讀入十進位制,八進位制,十六進位制整數

%o 讀入八進位制整數

%x,%x 讀入十六進位制整數

%s 讀入一個字串,遇空格、製表符或換行符結束。

%f,%f,%e,%e,%g,%g 用來輸入實數,可以用小數形式或指數形式輸入。

%p 讀入一個指標

%u 讀入一個無符號十進位制整數

%n 至此已讀入值的等價字元數

% 掃描字符集合

%% 讀%符號

4樓:匿名使用者

%% 讀%符號

% 格式控制,就是說明你要輸入的是什麼型別的數scanf("%d",&a);就是輸入整形資料 a%c 讀入一個字元

%d 讀入十進位制整數

%i 讀入十進位制,八進位制,十六進位制整數

%o 讀入八進位制整數

%x,%x 讀入十六進位制整數

%s 讀入一個字串,遇空格、製表符或換行符結束。

%f,%f,%e,%e,%g,%g 用來輸入實數,可以用小數形式或指數形式輸入。

%p 讀入一個指標

%u 讀入一個無符號十進位制整數

%n 至此已讀入值的等價字元數

% 掃描字符集合

%% 讀%符號

5樓:

樓主 你具體說清楚一下啦,這個符號可以表示註釋的意思

c語言中格式說明符%i是什麼意思

6樓:

%i 就是 %d. 輸出帶符號的十進位制整型%i 是老式寫法。

i -- integer (英文 整數的意思)d -- decimal (英文 十進位制整數的意思)

7樓:八百攝氏度的歆

%i表示有符號十進位制整數

它與%d相比較的優點:%i可以自動將輸入的八進位制或十六進位制轉換為十進位制

8樓:劉小禎

表示輸出帶符號的十進位制數。。。。。。

其相當於%d.............

9樓:匿名使用者

輸出帶符號的十進位制整型

10樓:

scanf

語法:#include

int scanf( const char *format, ... );

scanf()函式根據由format(格式)指定的格式從stdin(標準輸入)讀取,並儲存資料到其回它引數. 它和printf()有點類答

似. format(格式)字串由控制字元,空白字元和非空白字元組成. 控制字元以一個%符號開始,如下:

控制字元 說明

%c 一個單一的字元

%d 一個十進位制整數

%i 一個整數

%e, %f, %g 一個浮點數

%o 一個八進位制數

%s 一個字串

%x 一個十六進位制數

%p 一個指標

%n 一個等於讀取字元數量的整數

%u 一個無符號整數

% 一個字符集

%% 一個精度符號

c語言中 %c表示什麼

11樓:

%c在c語言中代表字元型格式符。

%s在c語言中代表字串型格式符。

%c和%s一般用在printf、sprintf等字串格式化函式中,用於決定格式化引數的資料型別。如printf("%s",  a)會將變數a作為字串型別進行格式化。

printf()函式是格式化輸出函式, 一般用於向標準輸出裝置按規定格式輸出資訊。

printf()函式的呼叫格式為: printf("《格式化字串》", 《參量表》)。

格式輸出,它是c語言中產生格式化輸出的函式(在 stdio.h 中定義)。用於向終端(顯示器、控制檯等)輸出字元。

格式控制由要輸出的文字和資料格式說明組成。要輸出的文字除了可以使用字母、數字、空格和一些數字符號以外,還可以使用一些轉義字元表示特殊的含義。

擴充套件資料:

c語言中所有格式化型別的定義:

1、%d/i

接受整數值並將它表示為有符號的十進位制整數,i是老式寫法

2、%o

無符號8進位制整數(不輸出字首0)

3、%u

無符號10進位制整數

4、%x/x

無符號16進位制整數,x對應的是abcdef,x對應的是abcdef(不輸出字首0x)

5、%f(lf)

單精度浮點數和雙精度浮點數用f(lf在c99開始加入標準,意思和f相同)

6、%e/e

科學計數法表示的數,此處"e"的大小寫代表在輸出時用的「e」的大小寫

7、%g/g

有效位數,如:%.8g表示單精度浮點數保留8位有效數字。

8、%c

字元型。可以把輸入的數字按照ascii碼相應轉換為對應的字元

9、%s/s

字串。輸出字串中的字元直至字串中的空字元(字串以'\0『結尾,這個'\0'即空字元)

10、%p

以16進位制形式輸出指標

11、%n

到此字元之前為止,一共輸出的字元個數,不輸出文字

12、%%

不進行轉換,輸出字元『%』(百分號)本身

13、%m

列印errno值對應的出錯內容,(例:printf("%m\n");)

12樓:匿名使用者

%c類似的格式適用於在printf或scanf說明格式化串後面引數的格式的

比如printf的

printf("%d,%c,%s",i,c,s);

字串當中的%d說明 後面第1個 i 按符號十進位制列印%c 是說 第2個 c 按單個字元列印

%s 指明 第3個 s 是以null('\0')結尾的字串也就是字元陣列

而且字串中%?格式說明符的個數要和後面所附變數數目一直其他的部分printf格式說明符:

%a 浮點數、十六進位制數字和p-記數法(c99)

%a 浮點數、十六進位制數字和p-記法(c99)%c 一個字元

%d 有符號十進位制整數

%e 浮點數、e-記數法

%e 浮點數、e-記數法

%f 浮點數、十進位制記數法

%g 根據數值不同自動選擇%f或%e.%g 根據數值不同自動選擇%f或%e.

%i 有符號十進位制數(與%d相同)%o 無符號八進位制整數

%p 指標

%s 字串

%u 無符號十進位制整數

%x 使用十六進位制數字0f的無符號十六進位制整數%x 使用十六進位制數字0f的無符號十六進位制整數%% 列印一個百分號

scanf的格式說明符和printf大致相同空白會過濾,非空白會過濾掉匹配的

13樓:

表示輸入字元或者輸出的型別是字元型別!

14樓:匿名使用者

在printf裡面代表輸出一個字元

15樓:lxq劉喜強

c是char,表示輸出單個字元

當輸入一個實型資料時,格式控制部分可以規定小數點後的位數,例如: scanf("%4.2f",&d);

16樓:是仙女本仙叭

輸入語句scanf是正確的

17樓:飄飄渺渺夢逍遙

輸入無法控制

只有輸出可以

18樓:匿名使用者

是對的,指定輸出的資料共佔4列,其中有2位是小數……

scanf("%d%d",&a,&b)與scanf("%d,%d",&a,&b)的區別!!

19樓:園林植物手冊

1、scanf("%d%d",&a,&b)輸入的兩個資料用空格,tab或者回車區分開。

2、scanf("%d,%d",&a,&b) 輸入的兩個資料用逗號區分開。

3、scanf函式功能是從外設讀取資料並賦值給變數,%d代表接收一個整形數,&a代表變數a的記憶體地址,也就是說把讀取的第一個整形數賦值給變數a。

4、scanf函式稱為格式輸入函式,即按使用者指定的格式從鍵盤上把資料輸入到指定的變數之中,其關鍵字最末一個字母f即為「格式」(format)之意。

使用scanf函式常見的問題

1、在高版本的 visual studio 編譯器中,scanf 被認為是不安全的,被棄用,應當使用scanf_s代替 scanf。

2、對於字串陣列或字串指標變數,由於陣列名可以轉換為陣列和指標變數名本身就是地址,因此使用scanf()函式時,不需要在它們前面加上"&"操作符。

3、 可以在格式化字串中的"%"各格式化規定符之間加入一個整數,表示任何讀操作中的最大位數。

4、 scanf函式中沒有類似printf的精度控制。

如: scanf("%5.2f",&a); 是非法的。不能企圖用此語句輸入小數為2位的實數。

5、scanf中要求給出變數地址,如給出變數名則會出錯

如 scanf("%d",a);是非法的,應改為scanf("%d",&a);才是合法的。

6、 在輸入多個數值資料時,若格式控制串中沒有非格式字元作輸入資料之間的間隔,則可用空格,tab或回車作間隔。

c編譯在碰到空格,tab,回車或非法資料(如對「%d」輸入「12a」時,a即為非法資料)時即認為該資料結束。

7、 在輸入字元資料(%c)時,若格式控制串中無非格式字元,則認為所有輸入的字元均為有效字元。

這個離散數學的符號代表什麼,離散數學這個符號什麼意思

這個是 異或 符號,運算規則是 如果兩個運算元不同,則結果為1,否則為0。identity,表示恆等對映,下標表示某個集合上的把自己對映為自己的對映。離散數學這個符號什麼意思 這個是 異或 符號,運算規則是 如果兩個運算元不同,則結果為1,否則為0。離散數學的部分符號 斷定 符 公式在l中可證 滿足...

c語言識別符號的命名規則是什麼 請舉例說明

c語言的識別符號一般應遵循如下的命名規則 1 識別符號必須以字母a z a z或下劃線開頭,後面可跟任意個 可為0 字元,這些字元可以是字母 下劃線和數字,其他字元不允許出現在識別符號中。2 識別符號區分大小寫字母 3 識別符號的長度,c89規定31個字元以內,c99規定63個字元以內 4 c語言中...

手指上的紋路能說明什麼,手上的紋路代表什麼

紋路說明不了什麼。不要太迷信,手上的紋路是一直在變化的 跟你的身體狀況有關。記住 命運是可以改變的!你有掌握命運的能力!祝你好運!因為手的粗細及紋路會隨著時間改變,因此可以從手紋的變化來 現在,手相不同於八字,八字是預知未來的婚姻,事業,和財運。手上的紋路代表什麼 一 井字紋出現在手掌的離宮位 出現...