c語言格式符
① c語言,格式符求教
請參考scanf函數的要求。
首先要明確scanf是個函數,既然是函數對傳入的參數就有一定的要求。
如果你想得到整型數據,只能採用這樣的格式:scanf("%d",&a);
一下是關於scanf函數的介紹,希望對你有所幫助。如有問題,可在線詢問。
scanf(格式化字元串輸入)
相關函數 fscanf,snprintf
表頭文件 #include<stdio.h>
定義函數 int scanf(const char * format,.......);
函數說明 scanf()會將輸入的數據根據參數format字元串來轉換並格式化數據。Scanf()格式轉換的一般形式如下
%[*][size][l][h]type
以中括弧括起來的參數為選擇性參數,而%與type則是必要的。
* 代表該對應的參數數據忽略不保存。
size 為允許參數輸入的數據長度。
l 輸入的數據數值以long int 或double型保存。
h 輸入的數據數值以short int 型保存。
底下介紹type的幾種形式
%d 輸入的數據會被轉成一有符號的十進制數字(int)。
%i 輸入的數據會被轉成一有符號的十進制數字,若輸入數據以「0x」或「0X」開頭代表轉換十六進制數字,若以「0」開頭則轉換八進制數字,其他情況代表十進制。
%0 輸入的數據會被轉換成一無符號的八進制數字。
%u 輸入的數據會被轉換成一無符號的正整數。
%x 輸入的數據為無符號的十六進制數字,轉換後存於unsigned int型變數。
%X 同%x
%f 輸入的數據為有符號的浮點型數,轉換後存於float型變數。
%e 同%f
%E 同%f
%g 同%f
%s 輸入數據為以空格字元為終止的字元串。
%c 輸入數據為單一字元。
[] 讀取數據但只允許括弧內的字元。如[a-z]。
[^] 讀取數據但不允許中括弧的^符號後的字元出現,如[^0-9].
返回值 成功則返回參數數目,失敗則返回-1,錯誤原因存於errno中。
範例 #include <stdio.h>
main()
{
int i;
unsigned int j;
char s[5];
scanf(「%d %x %5[a-z] %*s %f」,&i,&j,s,s);
printf(「%d %d %s\n」,i,j,s);
}
執行 10 0x1b aaaaaaaaaa bbbbbbbbbb
10 27 aaaaa
② C語言中的%f格式符
%f在輸入輸出使用,它表示輸入或輸出的數為浮點數(即可以帶小數的數),如;
float a;
scanf("%f",&a);就可以輸入3.15;
a=3.15;
同理%d,表示輸入或輸出的數為整數。
%c表示輸入或輸出的數為字元。
③ C語言中的格式符哪個比較常用
%f
就是輸入輸出float類型的格式符,跟%d一樣用就可以了.
指定欄位長度就是%km.nf這樣來用,k是正負號,正可以省略,正表示右對齊,負表示左對齊.
比如說-789.124這個數,一共佔8個格子,那麼比如%10f,就會左邊空兩格,然後再輸出這個數,%-10f就是先輸出這個數,再空兩格,然後什麼%4f,%3f在這里都沒有用,因為這個數有8格,4和3都太小了,它會不空格正常輸出-789.12400x,注意小數點後有6位,這是因為float的精度所確定的.然後最後一位誤差是不定的,因為計算機硬體原因.所以實際上%10f還是太小了,因為實際上這個數有11位,10無法起到控制格式和空格的作用,10跟不寫是一樣的,至少%12f才有用.
m就是空格的控制符啦,剛解釋過了.
小數點後面的n是精確到幾位,比如說%.2f,就是四捨五入保留2位小數.
樓上瞎說...%4f和%3f怎麼會把小數省掉!太搞笑了..自己去試試啊~
浮點的%4f的4是包括小數位的~而且這個4是用來做比如表格之類的格式控制,自動輸入空格的,不是用來四捨五入舍位數的,如果數據大於4位,那就會直接撐出來,本來多少位,就輸出多少位
④ C語言的所有格式符。
%a,%A 讀入一個浮點值(僅C99有效)
%c 讀入一個字元
%d 讀入十進制整數
%i 讀入十進制,八進制,十六進制整數
%o 讀入八進制整數
%x,%X 讀入十六進制整數
%s 讀入一個字元串,遇空格、製表符或換行符結束。
%f,%F,%e,%E,%g,%G 用來輸入實數,可以用小數形式或指數形式輸入。
%p 讀入一個指針
%u 讀入一個無符號十進制整數
%n 至此已讀入值的等價字元數
%[] 掃描字元集合
%% 讀%符號
⑤ c語言中輸入輸出的一些格式符及其意思
printf("%d",n);//用int類型的輸出
printf("%i",n);//用int類型的輸出
printf("%f",n);//float類型的輸出
printf("%lf",n);//double類型的輸出
printf("%.3f",n);//小數點後保留三位
printf("%.4lf",n);//double類型的小數點後保留4位數
printf("%s",a);//字元串的輸出
puts(a);字元輸出;
printf("我是菜鳥");//輸出我是菜鳥字樣;
printf("我是菜鳥\n");//輸出完了換行;
\b是退格;
\t是橫向跳就是多個空格;
我們現在基本不用了在可視化里根本不用了那裡有UpdateData(0);
之類的很多呢
以上功能就行了夠用了;。
⑥ c語言 格式轉換符 %f %e %g 有什麼區別
%f 表示按浮點數的格式輸出
%e 表示按指數形式的浮點數的格式輸出
%g 表示自動選擇合適的表示法輸出
示常式序如下:
#include<stdio.h>
voidmain()
{
floatf=3.1415926;
printf("%f ",f);//輸出3.141593
printf("%e ",f);//輸出3.141593e+000
printf("%g ",f);//輸出3.14159
}
⑦ c語言格式控制符
printf的格式控制的完整格式:
% - 0 m.n l或h 格式字元
下面對組成格式說明的各項加以說明:
①%:表示格式說明的起始符號,不可缺少。
②-:有-表示左對齊輸出,如省略表示右對齊輸出。
③0:有0表示指定空位填0,如省略表示指定空位不填。
④m.n:m指域寬,即對應的輸出項在輸出設備上所佔的字元數。N指精度。用於說明輸出的實型數的小數位數。為指定n時,隱含的精度為n=6位。
⑤l或h:l對整型指long型,對實型指double型。h用於將整型的格式字元修正為short型。
---------------------------------------
格式字元
格式字元用以指定輸出項的數據類型和輸出格式。
①d格式:用來輸出十進制整數。有以下幾種用法:
%d:按整型數據的實際長度輸出。
%md:m為指定的輸出欄位的寬度。如果數據的位數小於m,則左端補以空格,若大於m,則按實際位數輸出。
%ld:輸出長整型數據。
②o格式:以無符號八進制形式輸出整數。對長整型可以用"%lo"格式輸出。同樣也可以指定欄位寬度用「%mo」格式輸出。
例:
main()
{ int a = -1;
printf("%d, %o", a, a);
}
運行結果:-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格式中較短的一種輸出,且不輸出無意義的零。
---------------------------------------
關於printf函數的進一步說明:
如果想輸出字元"%",則應該在「格式控制」字元串中用連續兩個%表示,如:
printf("%f%%", 1.0/3);
輸出0.333333%。
---------------------------------------
對於單精度數,使用%f格式符輸出時,僅前7位是有效數字,小數6位.
對於雙精度數,使用%lf格式符輸出時,前16位是有效數字,小數6位.
對於m.n的格式還可以用如下方法表示(例)
char ch[20];
printf("%*.*s
",m,n,ch);
前邊的*定義的是總的寬度,後邊的定義的是輸出的個數。分別對應外面的參數m和n 。我想這種方法的好處是可以在語句之外對參數m和n賦值,從而控制輸出格式
我自己敲過格式符的代碼,給你看看吧:
⑧ C語言轉換格式符大全
int printf(const char *format,[argument]);
format 參數輸出的格式,定義格式為:
%[flags][width][.perc] [F|N|h|l]type
規定數據輸出方式,具體如下:
1.type 含義如下:
d 有符號10進制整數
i 有符號10進制整數
o 有符號8進制整數
u 無符號10進制整數
x 無符號的16進制數字,並以小寫abcdef表示
X 無符號的16進制數字,並以大寫ABCDEF表示
F/f 浮點數
E/e 用科學表示格式的浮點數
g 使用%f和%e表示中的總的位數表示最短的來表示浮點數 G 同g格式,但表示為指數
c 單個字元
s 字元串
% 顯示百分號本身
p 顯示一個指針,near指針表示為:XXXX
far 指針表示為:XXXX:YYYY
n 相連參量應是一個指針,其中存放已寫字元的個數
2.flags 規定輸出格式,取值和含義如下:
無 右對齊,左邊填充0和空格
- 左對齊,右邊填充空格
+ 在數字前增加符號 + 或 -
一個空格 只對負數顯示符號
# 當type=c,s,d,i,u時沒有影響
type=o,x,X時,分別在數值前增加'0',"0x","0X"
type=e,E,f時,總是使用小數點
type=g,G時,除了數值為0外總是顯示小數點 3.width 用於控制顯示數值的寬度,取值和含義如下n(n=1,2,3...) 寬度至少為n位,不夠以空格填充
0n(n=1,2,3...) 寬度至少為n位,不夠左邊以0填充 * 格
式列表中,下一個參數還是width 4.prec 用於控制小數點後面的位數,取值和含義如下:
無 按預設精度顯示
0 當type=d,i,o,u,x時,沒有影響
type=e,E,f時,不顯示小數點
n(n=1,2,3...) 當type=e,E,f時表示的最大小數位數
type=其他,表示顯示的最大寬度 .*
格式列表中,下一個參數還是width
5.F|N|h|l 表示指針是否是遠指針或整數是否是長整數
F 遠指針
n 近指針
h短整數或單精度浮點數
l 長整數或雙精度浮點數
1.一般格式
printf(格式控制,輸出表列)
例如:printf("i=%d,ch=%c\n",i,ch);
說明:
(1)「格式控制」是用雙撇號括起來的字元串,也稱「轉換控制字元串」,它包括兩種信息:
①格式說明:由「%」和格式字元組成,它的作用是將輸出的數據轉換為指定的格式輸出。
②普通字元,即需要原樣輸出的字元。
(2)「輸出表列」是需要輸出的一些數據,可以是表達式
(3)printf函數的一般形式可以表示為
printf(參數1,參數2,……,參數n)
功能是將參數2~參數n按參數1給定的格式輸出
2.格式字元(9種)
(1)d(或i)格式符。用來輸出十進制整數,有以下幾種用法:
①%d,按整型數據的實際長度輸出。
②%md,m為指定的輸出欄位的寬度。如果數據的位數小於m,則左端補以空格,若大於m,則按實際位數輸出。
③%ld(%mld 也可),輸出長整型數據。
例如:long a=123456;
printf("%ld",a);
(2)o格式符,以八進制數形式輸出整數。格式:%o,%mo,%lo,%mlo都可。
(3)x(或X)格式符,以十六進制數形式輸出整數。格式:%x,%mx,%lx,%mlx都可。
(4)u格式符,用來輸出unsigned型數據,即無符號數,以十進制數形式輸出。格式:%u,%mu,%lu都可。
參見:li4-3.c/*無符號數據的輸出*/
(5)c格式符,用來輸出一個字元。格式:%c,%mc都可。
(6)s格式符,用來輸出一個字元串。格式:%s,%ms,%-ms,%m.ns,%-m.ns都可。
參見:li4-5.c /*字元串的輸出*/
(7)f格式符,用來輸出實數(包括單、雙精度),以小數形式輸出。格式:%f,%m.nf,%-m.nf都可。
注意:單精度實數的有效位數一般為7位,雙精度為16位。
參見:li4-6.c/*輸出單精度實數時的有效位數*/
li4-7.c/*輸出雙精度實數時的有效位數*/
li4-8.c/*輸出實數時指定小數位數*/
(8)e(或E)格式符,以指數形式輸出實數。格式:%e,%m.ne,%-m.ne都可。
(9)g(或G)格式符,用來輸出實數,它根據數值的大小,自動選f格式或e格式(選擇輸出時占寬度較小的一種)。
3.說明
(1)除了X、E、G(用大寫字母表示)外,其他格式字元必須用小寫字母;
(2)「格式控制」字元串內可以包含轉義字元;
(3)如果想輸出字元「%」,則應該在「格式控制」字元串中用連續兩個%表示,如:
printf("%f%%",1.0/3);
(4)格式字元表參見下表
表4.1 printf格式字元
格式字元 說 明
d,i 以帶符號的十進制形式輸出整數(正數不輸出符號)
o 以八進制無符號形式輸出整數(不輸出前導符0)
x,X 以十六進制無符號形式輸出整數(不輸出前導符0x),用x則輸出十六進制數的a~f時以小寫形式輸出,用X時,則以大寫字母輸出
u 以無符號十進制形式輸出整數
c 以字元形式輸出,只輸出一個字元
s 輸出字元串
f 以小數形式輸出單、雙精度數,隱含輸出6位小數
e,E 以指數形式輸出實數
g,G 選用%f或%e格式中輸出寬度較短的一種格式,不輸出無意義的0
表4.2 printf的附加格式說明字元
字元
說明
字母l
用於長整型整數,可加在格式符d、o、x、u前面
m(代表一個正整數)
數據最小寬度
n(代表一個正整數)
對實數,表示輸出n位小數;對字元串,表示截取的字元個數
-
輸出的數字或字元在域內向左靠
⑨ C語言中的格式符%-06d
負號「-」的意思是向左對齊。
「06」的意思是輸出的寬度為6.
%-06d :
輸出向左對齊
如果輸入字元大於6個,則原樣輸出,
若小於6個,則右補空格。
⑩ C語言中的格式說明符由什麼組成
c語言中的格式說明符,以%開頭,後面接上字母,如%d表示整數,%f表示浮點數,%s表示字元串,%c表示字元等等!
擴展:格式說明符詳細說明
① d格式:用來輸出十進制整數。有以下幾種用法:
%d:按整型數據十進制的實際長度輸出。
%md:m為指定的輸出欄位的寬度。如果數據的位數小於m,則左端補以空格,若大於m,則按實際位數輸出。
%ld:輸出長整型數據。
② o格式:以無符號八進制形式輸出整數。
%d:按整型數據八進制的實際長度輸出。
%lo:對長整型可以用格式輸出
%mo:指定欄位寬度用格式輸出
③ x格式:以無符號十六進制形式輸出整數。
%x:按整型數據十六進制的實際長度輸出。
%lx:對長整型可以用格式輸出
%mx:指定欄位寬度用格式輸出
④ u格式:以無符號十進制形式輸出整數。
%u:按無符號整型數據十進制的實際長度輸出。
%lu:對長整型可以用格式輸出
%mu:指定欄位寬度用格式輸出
⑤ c格式:輸出一個字元。
⑥ s格式:用來輸出一個串。有幾中用法
%s:例如:printf("%s", "CHINA")輸出"CHINA"字元串(不包括雙引號)。
%ms:輸出的字元串佔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表示整個輸出數據所佔的寬度。
⑨ p格式:輸出指針地址