1. 程式人生 > >printf()輸出格式

printf()輸出格式

1、格式輸出函式的一般形式

      函式原型: int printf(char * format[,argument,…]);

      函式功能:按規定格式向輸出裝置(一般為顯示器)輸出資料,並返回實際輸出的字元數,若出錯,則返回負數。

      它使用的一般形式為:

               printf("格式控制字串",輸出項列表);

      語句中“輸出項列表”列出要輸出的表示式(如常量、變數、運算子表示式、函式返回值等),它可以是0個、一個或多個,每個輸出項之間用逗號(,)分隔。輸出的資料可以是整數、實數、字元和字串。

      "格式控制字串"必須用英文的雙引號括起來,它的作用是 控制輸出項的格式和輸出一些提示資訊,例如

                    int i=97; printf("i=%d,%c\n",i,i);

                輸出結果為:i=97,a

        語句“printf("i=%d,%c\n",i,i);”中的兩個輸出項都是變數i,但卻以不同的格式輸出,一個輸出整型數97,另一個輸出的卻是字元a,其格式分別由“%d”與“%c”來控制。

        語句“printf("i=%d,%c\n",i,i);”的格式控制字串中“i=”是普通字元,他將照原樣輸出;“%d”與“%c”是格式控制符;"\n"是轉義字元,它的作用是換行。

2、格式控制

      格式控制由格式控制字串實現。格式控制字串由3部分組成:普通字元、轉義字元、輸出項格式說明。

      (1)普通字元。普通字元在輸出時,按原樣輸出,主要用於輸出提示資訊。

      (2)轉義字元。轉義字元指明特定的操作,如"\n"表示換行,"\t"表示水平製表等。

      (3)格式說明部分由“%”和“格式字串”組成,他表示按規定的格式輸出資料。

        格式說明的形式為:

 %[flags][width][.prec][F|N|h|I][type]

        各部分說明如下:

  1. “[]”表示該項為可選項,即可有可無,如 printf("%d",100);
  2. flags為可選擇的標誌字元,常用的標誌字元有:
    •  -   ——左對齊輸出,預設為右對齊輸出;
    • +   ——正數輸出加號(+),負數輸出減號(-);
    • 空格 ——正數輸出空格代替加號(+),負數輸出減號(-)。
  3. width為可選擇的寬度指示符。
    • 用十進位制正整數表示設定輸出值得最少字元個數。不足則補空格,多出則按實際輸出,預設按實際輸出,例如:
    • printf("%8d\n",100);       printf("%6d\n",100);       printf("%-8d\n",100);        printf("%+8\n",100);
    • 輸出結果為:└┘└┘└┘└┘└┘100         
      └┘└┘└┘
      100          100└┘└┘└┘└┘└┘     └┘└┘└┘└┘+100
  4. [.prec]為可選的精度指示符
    • 用“小數點”加“十進位制正整數”表示,對“整數”、“實數”和“字串”的輸出有如下功能:對“整數”,表示至少要輸出的數字個數,不足補數字0,多則原樣輸出;對“實數”,表示小數點後至多輸出的數字個數,不足則補數字0,多則做舍入處理;對“字串”,表示最多輸出的字元個數,不足補空格,多則丟棄。
    • 例如:printf("%8.2f\n",3.14159);                     
      printf("%8.5f\n",3.14159);
    • 輸出結果為:└┘└┘└┘└┘3.14                                
      └┘3.14159
  5. [F|N|h|I]為可選的輸出長度修飾符,其功能如下:
    • F ——輸出遠指標存放的地址;
    • N——輸出近指標存放的地址;
    • h——輸出短整型資料的值;
    • l——輸出長整型或雙精度型資料的值。
    • 例如:long  n=40000;
    •             printf("%8ld\n",n);/*因為200*200是長整型資料*/
  6. type為可選的格式字元,用來進行格式轉換。