printf函式常用的輸出方式及格式化輸出說明
阿新 • • 發佈:2019-02-13
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:
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 轉換中字串的最大列印位元組數目。
轉義序列:
這些轉義序列在字串中會被自動轉換為相應操作命令
printf("%d",i);//輸出整數 printf("%x",i);//輸出十六進位制數,小寫形式 printf("%X",i);//輸出十六進位制數,大寫形式 printf("%s",*p);//輸出字串
字元 | 字元名稱 | 說明 |
- | 減號 | 左對齊,右邊填充空格(預設右對齊) |
+ | 加號 | 在數字前增加符號 + 或 - |
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) |