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