基本型別對應表
| 型別 | 格式符 | 說明 |
short/int | %d | 有號十進位整數 |
long | %ld | 長整數(long 為 int 修飾,多 4 位元組) |
long long | %lld | 長長整數 |
char | %c | 單一字元 |
float/double | %f | 預設 6 位小數;%.2f 控制 2 位 |
char* (字串) | %s | 以 \0 結尾的字元陣列 |
unsigned 型別 | %u | 無號十進位;預設型別為有號 |
| 八進位 | %o | 以 0 開頭 |
| 十六進位 | %x/%X | 以 0x 開頭;大小寫字母對應 |
| 二進位 | 無 | 需自行實作轉換 |
| 指標/位址 | %p | 以十六進位顯示位址 |
進階格式控制
%[旗標][寬度][.精度][長度]型別
// 範例
printf("%10d", 42); // 寬度 10,右對齊
printf("%-10d", 42); // 左對齊
printf("%010d", 42); // 前導補 0
printf("%.2f", 3.14159); // 2 位小數
printf("%*d", 10, 42); // 寬度由引數指定
指標操作符提醒
常見錯誤
%d 對應 long → 資料截斷
%f 對應 float 實際提升為 double 無害,但 %lf 在 printf 中等同 %f,scanf 中必須用 %lf 讀 double
- 字串未以
\0 結尾導致 %s 越界讀取