1.printf說明
includeint printf(const char * format, ...);
參數 | 輸出 | 範例 |
---|---|---|
d or i | 含正負符號的十進制整數 | 427, -427 |
u | 不含正負符號的十進制整數 | 428 |
o | 不帶符號的八進制整數 | 210 |
x | 不帶符號的十六進制整數(小寫) | fa24 |
X | 不帶符號的十六進制整數(大寫) | FA24 |
f | 浮點數 | 3.14 |
c | 字元顯示 | A, a |
s | 字串顯示 | Hello world |
p | 指標地址 | b8000000 |
參數 | 說明 | 輸出範例 |
---|---|---|
%% | 顯示百分比符號 | % |
\\ | 顯示反斜線 | \ |
\' | 顯示單引號 | ' |
\n | 換行 | |
\t | 豎向跳格(TAB) | |
\b | 倒退 | |
\r | 回車(Return) |
在使用printf時,如有使用%f表示浮點數時,可以指定小數點顯示位數
如%.2f即代表顯示兩位數(ex:3.14)
return時帶回轉出字元數即字串長度。
#includeint cnt = 0, num=100; cnt = sprintf("number = %d", num);
2.sprintf說明
includeint printf(char *str, const char * format, ...);
使用方式大致與printf相同,僅差別在於sprintf會將轉換結果儲存至 *str陣列中。
#includeint cnt = 0, num=100; char str[10]; cnt = sprintf(str, "number = %d", num);
3.PSoC Creator3.0中使用sprintf
PSoC Creator3.0據說是因為要縮減code的大小,以至於在使用sprintf功能時,預設不會載入浮點數轉換的功能,需要另外增加linker命令才可以致能浮點數的轉換功能,如不啟動的情況下使用sprintf轉換float變數時,均會得到空白的結果。
其解決的辦法是在Build Settings設定中的linker加入 -u _printf_float 命令(如下圖)