next up previous contents
Next: scanf 函式 Up: 格式化輸入輸出 Previous: printf 函式   Contents   DYWANG_HOME

printf 修飾子

  1. printf 函式的格式碼可以依指定型態列印,再配合修飾子 (flags) 可更符合列印需求。
    修飾子 功能 實例 實例說明
    - 靠左對齊 %-4d 以 4 個位數列印十進位整數並靠左對齊
    + 強制列印數值的正負符號 %+5d 以 5 個位數列印十進位整數並列印正負符號
    (space) 正數留空白,負數用負號 % 6f 以 6 個位數列印浮點數,正數時第 1 位數留空白
    0 固定位數列印時,數值前空白以 0 補足 %010.2f 以 10 個位數列印浮點數,小數點 2 位,不足 10 位時整數前補 0。
  2. 範例:
    #include <stdio.h>
    
    main() {
        int a=-9, b=679, c=-679;
        float d=-3.141, e=3.1415, f=-792.324, g=123456.7;
        printf("a=%-4d\tb=%+5d\tc=%+5d\n", a, b, c);
        printf("d=% 10f\te=% 4f\tf=%010.2f\tg=%010.2f\n", d, e, f,g);
    }
    
  3. 編譯成功
    [dywang@dyw219 zzz]$ gcc -o fstdio2 fstdio2.c
    
  4. 執行結果與表格實例說明吻合嗎? 當指定的浮點數位數4 小於變數 e 精確度 6 時,輪入自動增加位數。
    [dywang@dywIssd zzz]$ ./fstdio2
    a=-9	b= +679	c= -679
    d= -3.141000	e= 3.141500	f=-000792.32	g=0123456.70
    



De-Yu Wang 2021-01-11