cprintf使用及引數詳解

2021-03-04 09:44:40 字數 2487 閱讀 5167

1.呼叫格式為printf("《格式化字串》",《參量表》);

其中格式化字串包括兩部分內容:一部分是正常字元,這些字元將按原樣輸出;另一部分是格式化規定字元,以"%"開始,後跟乙個或幾個規定字元,用來確定輸出內容格式。參量表是需要輸出的一系列引數,其個數必須與格式化字串所說明的輸出引數個數一樣多,各引數之間用","分開,且順序一一對應,否則將會出現意想不到的錯誤。

2.格式化字元

%d十進位制有符號整數

%u十進位制無符號整數

%f浮點數

%s字串

%c單個字元

%p指標的值

%e指數形式的浮點數

%x,%x無符號以十六進製制表示的整數

%0無符號以八進位制表示的整數

%g自動選擇合適的表示法

說明:(1).可以在"%"和字母之間插進數字表示最大場寬。

例如:%3d表示輸出3位整型數,不夠3位右對齊。%9.

2f表示輸出場寬為9的浮點數,其中小數字為2,整數字為6,小數點佔一位,不夠9位右對齊。超過9位,按實際輸出。%8s表示輸出8個字元的字串,不夠8個字元右對齊。

如果字串的長度、或整型數字數超過說明的場寬,將按其實際長度輸出。但對浮點數,若整數部分位數超過了說明的整數字寬度,將按實際整數字輸出;若小數部分位數超過了說明的小數字寬度,則按說明的寬度以四捨五入輸出。另外,若想在輸出值前加一些0,就應在場寬項前加個0。

例如:%04d表示在輸出乙個小於4位的數值時,將在前面補0使其總寬度為4位。如果用浮點數表示字元或整型量的輸出格式,小數點後的數字代表最大寬度,小數點前的數字代表最小寬度。

例如:%6.9s表示顯示乙個長度不小於6且不大於9的字串。

若大於9,則第9個字元以後的內容將被刪除。

(2).可以在"%"和字母之間加小寫字母l,表示輸出的是長型數。例如:%ld表示輸出long整數,%lf表示輸出double浮點數。

(3).可以控制輸出左對齊或右對齊,即在"%"和字母之間加入乙個"-"號可說明輸出為左對齊,否則為右對齊。例如:

%-7d表示輸出7位整數左對齊,%-10s表示輸出10個字元左對齊。

3.一些特殊規定字元

\n換行

\f清屏並換頁

\r回車

\ttab符

\xhh表示乙個ascii碼用16進表示,

其中hh是1到2個16進製制數

inta=1234;

printf("a=%d\n",a);//a=1234

printf("a=%2d\n",a);//a=1234超過2位,按實際輸出

printf("a=%6d\n",a);//a=1234不足6位,右對齊

printf("a=%06d\n",a);//a=001234不足6位,前面補0

printf("a=%-6d\n",a);//a=1234'-'左對齊

int*i=&a;

printf("i=%p\n",i);//i=0012ff44輸出指標的值,即位址

floatm=8888.8888;//float單精度型浮點數有效位數是6位或7位,根據不同的浮點數會有不同

floatm1=8888.8888f;//在後面加上f或f,編譯警告:truncationfrom'constdouble'to'float'

//編譯器預設浮點數為double

floatm2=8888.888f;

doublen=8888.8888;

doublen1=8888888888.88888888;//double雙精度型浮點數有效位數是15位

printf("m=%f\nm1=%f\nm2=%f\nn=%lf\nn1=%f\n",m,m1,m2,n,n1);//m=8888.888672

//m1=8888.888672

//m2=8888.887695

//n=8888.888800

//n1=8888888888.888889

//%f的預設輸出小數字數就是6位不管有沒有l

/*printf的%f說明符的確既可以輸出float型又可以輸出double型。根據"預設引數提公升"規則(在printf這樣的函式的

可變引數列表中,不論作用域內有沒有原型,都適用這一規則)float型會被提公升為double型。因此printf()只會看到

雙精度數。嚴格地講,%lf在printf下是未定義的,但是很多系統可能會接受它。要確保可移植性,就要堅持使用%f。*/

printf("m4=%4.2f\n",m);//寬度總共4位,小數兩位,小數點一位,整數一位,這裡整數超過寬度規定,按實際整數字輸出

printf("m5=%9.6f\n",m);//浮點數小數部分不足6位,右對齊

printf("m6=%9.2f\n",m);//整數部分不足6位,右對齊;小數部分超過2位,四捨五入

charc[20]="hello,world!";

printf("c=%s\n",c);

printf("c=%6.9s\n",c);//c=hello,wor6.9s表示輸出乙個長度長度不小於6且不大於9的字串。若大於9,則第9個字元以後的內容將被刪除。

linux cp命令引數及用法詳解

cp 複製檔案或目錄 root linux cp adfilprsu 檔 source 目的檔 destination root linux cp options source1 source2 source3 directory 引數 a 相當於 pdr 的意思 d 若 檔案為鏈結檔案的屬性 li...

詳解顯示卡引數

手把手教你識別顯示卡主要效能引數 初識顯示卡的玩家朋友估計在選購顯示卡的時候對顯示卡的各項效能引數有點摸不著頭腦,不知道誰對顯示卡的效能影響最大 哪些引數並非越大越好以及同是等價位的顯示卡但在某些單項上a卡或者是n卡其中的一家要比對手強悍等等。這些問題想必是每個剛剛接觸顯示卡的朋友所最想了解的資訊,...

UPS引數詳解

功率因數 功率因素是國際上標稱ups容量時的重要標準。功率是電流能量的傳輸率的度量,在直流電路中它是電壓v和電流a和乘積。在交流系統裡則要複雜些 因為有部分交流電流在負載裡迴圈的時候是不傳輸電能的,它稱為電抗電流或諧波電流,它使計算出來的視在功率 電壓volt乘電流amps 的數值大於實際功率數值。...