1. 程式人生 > >printf函式常用的輸出方式及格式化輸出說明

printf函式常用的輸出方式及格式化輸出說明

printf()函式是格式化輸出函式, 一般用於向標準輸出裝置按規定格式輸出資訊。 printf()函式的呼叫格式為: printf("<格式化字串>", <參量表>)。 格式輸出,它是c語言中產生格式化輸出的函式(在 stdio.h 中定義)。用於向終端(顯示器、控制檯等)輸出字元。格式控制由要輸出的文字和資料格式說明組成。要輸出的的文字除了可以使用字母、數字、空格和一些數字符號以外,還可以使用一些轉義字元表示特殊的含義 函式的原型是extern int printf(const char *format,...); printf輸出都是以字元形式表達,若要直接輸出十六進位制或十進位制數,則需要直接使用UART_Send()函式來輸出。 printf的輸出格式:%[flags][width][.prec][F|N|h|l]type printf("%f",i);//輸出單精度浮點數 printf("%lf",i);//輸出雙精度浮點數
printf("%d",i);//輸出整數 printf("%x",i);//輸出十六進位制數,小寫形式 printf("%X",i);//輸出十六進位制數,大寫形式 printf("%s",*p);//輸出字串
printf("%o",i);//輸出八進位制數 printf("%c",i);//輸出字元型資料 printf("%p",i);//以十六進位制輸出指標 printf("%e",i);//輸出科學計數法資料 flags:
字元 字元名稱 說明
- 減號 左對齊,右邊填充空格(預設右對齊)
+ 加號 在數字前增加符號 + 或 -
0 數字零 將輸出的前面補上0,直到佔滿指定列寬為止(不可以搭配使用“-”)
空格 輸出值為正時加上空格,為負時加上負號
# 井號 type是o、x、X時,增加字首0、0x、0X type是e、E、f、g、G時,一定使用小數點 type是g、G時,尾部的0保留

width:

用於控制顯示數值的寬度,取值和含義如下:
n(n=1,2,3,4,5,6...): 寬度至少為n位,不夠以空格填充。
* 格式列表中,下一個引數還是width
width是一個可選的指定最小值欄位寬度的十進位制數字字串。如果轉換值字元少於欄位寬度,該欄位將從左到右按指定的欄位寬度填充。如果指定了左邊調整選項,欄位將在右邊填充。如果轉換結果寬於欄位寬度,將擴充套件該欄位以包含轉換後的結果。不會發生截斷。然而,小的精度可能導致在右邊發生截斷。
prec:
用於控制小數點後面的位數,取值和含義如下:
無按預設精度顯示0
當type=d,i,o,u,x時,沒有影響;
type=e,E,f時,不顯示小數點
n(n=1,2,3...)
當type=e,E,f時表示的最大小數位數;
type=其他,表示顯示的最大寬度
prec是指可選的精度。精度是一個 .(點)後跟十進位制數字字串。如果沒有給出精度,按 0(零)對待。精度指定:
* d、o、i、 u、x 或 X 轉換的最少數字顯示位數。
* e 和 f 轉換的基數字符後的最少數字顯示位數。
* g 轉換的最大有效數字位數。
* s 轉換中字串的最大列印位元組數目。
轉義序列:
這些轉義序列在字串中會被自動轉換為相應操作命令
符號 意義 符號 意義
\a 鈴聲(提醒) \b Backspace
\f 換頁 \n 換行
\r 回車 \t 水平製表符
\v 垂直製表符 \’ 單引號
\” 雙引號 \\ 反斜槓
\? 文字問號 \ ooo (例如\024) ASCII字元(OCX)
\xhh (例如:\x20) ASCII字元(HEX) \xhhhh 寬字元(2位元組HEX)