承接上一篇 printf 輸出 % 的技巧,本文詳細解析 printf 格式化輸出時的寬度控制。掌握寬度設定,能讓輸出結果對齊美觀,提升日誌與報表的可讀性。
%4d,不足左補空格。* 佔位,由後續參數動態決定,如 %*d。#include <stdio.h>
int main() {
int a = 33;
int b = 333;
int c = 1234;
int width = 4;
printf("%d,%d \n", c, c); // 預設寬度
printf("%d,%d \n", a, b); // 預設寬度
printf("%4d,%4d \n", a, b); // 固定寬度 4
printf("%*d,%*d \n", width, a, width, b); // 可變寬度 4
return 0;
}
%*dprintf("%*d,%*d \n", width, a, width, b);
* 表示寬度由參數傳入,寬度參數在值參數之前。width = 4,故 a(33) 輸出為 " 33"(前補兩空格),b(333) 輸出為 " 333"(前補一空格)。1234,1234 // 預設寬度,完整輸出
33,333 // 預設寬度,無補位
33, 333 // 固定寬度 4,左補空格對齊
33, 333 // 可變寬度 4,效果相同
註:終端中可清晰看到前導空格,建議自行編譯實驗。
靈活運用三種寬度模式,可輕鬆實現表格對齊、日誌欄位固定寬等需求。下一回將繼續探討更多 printf 進階用法。