1.調用格式爲 printf("<格式化字符串>", <參量表>);函數
其中格式化字符串包括兩部份內容: 一部分是正常字符, 這些字符將按原樣輸出; 另外一部分是格式化規定字符, 以"%"開始, 後跟一個或幾個規定字符, 用來肯定輸出內容格式。參量表是須要輸出的一系列參數, 其個數必須與格式化字符串所說明的輸出參數個數同樣多, 各參數之間用","分開, 且順序一一對應, 不然將會出現意想不到的錯誤。spa
2.格式化字符3d
值 | 說明 |
%d | 十進制有符號整數 |
%u | 十進制無符號整數 |
%f | 浮點數 |
%s | 字符串 |
%c | 單個字符 |
%p | 指針的值 |
%e | 指數形式的浮點數 |
%x, %X | 無符號以十六進制表示的整數 |
%0 | 無符號以八進制表示的整數 |
%g | 自動選擇合適的表示法 |
說明:
(1). 能夠在"%"和字母之間插進數字表示最大場寬。 指針
例如: code
%3d 表示輸出3位整型數, 不夠3位右對齊。 blog
%9.2f 表示輸出場寬爲9的浮點數, 其中小數位爲2, 整數位爲6, 小數點佔一位, 不夠9位右對齊。作用域
%8s 表示輸出8個字符的字符串, 不夠8個字符右對齊。 若是字符串的長度、或整型數位數超過說明的場寬, 將按其實際長度輸出。 但對浮點數, 若整數部分位數超過了說明的整數位寬度, 將按實際整數位輸出; 若小數部分位數超過了說明的小數位寬度, 則按說明的寬度以四捨五入輸出。另外, 若想在輸出值前加一些0, 就應在場寬項前加個0。 例如: %04d 表示在輸出一個小於4位的數值時, 將在前面補0使其總寬度爲4位。若是用浮點數表示字符或整型量的輸出格式, 小數點後的數字表明最大寬度, 小數點前的數字表明最小寬度。 例如: %6.9s 表示顯示一個長度不小於6且不大於9的字符串。若大於9, 則第9個字符之後的內容將被刪除。
(2). 能夠在"%"和字母之間加小寫字母l, 表示輸出的是長型數。例如: %ld 表示輸出long整數, %lf 表示輸出double浮點數。
(3). 能夠控制輸出左對齊或右對齊, 即在"%"和字母之間加入一個"-" 號可說明輸出爲左對齊, 不然爲右對齊。例如: %-7d 表示輸出7位整數左對齊,%-10s 表示輸出10個字符左對齊。字符串
3. 一些特殊規定字符
\n換行
\f清屏並換頁
\r回車
\t Tab符
\xhh表示一個ASCII碼用16進表示,
其中hh是1到2個16進制數原型
int a=1234; printf("a=%d\n",a); //a=1234 printf("a=%2d\n",a); //a=1234 超過2位,按實際輸出 printf("a=%6d\n",a); //a= 1234 不足6位,右對齊 printf("a=%06d\n",a); //a=001234 不足6位,前面補0 printf("a=%-6d\n",a); //a=1234 '-'左對齊 int* i=&a; printf("i=%p\n",i); //i=0012FF44 輸出指針的值,即地址 float m=8888.8888; //float 單精度型浮點數 有效位數是6位或7位,根據不一樣的浮點數會有不一樣 float m1=8888.8888f; //在後面加上f或F,編譯警告:truncation from'const double'to 'float' //編譯器默認浮點數爲double float m2=8888.888f; double n=8888.8888; double n1=8888888888.88888888; //double 雙精度型浮點數 有效位數是15位 printf("m=%f\n m1=%f\n m2=%f\n n=%lf\n n1=%f\n",m,m1,m2,n,n1); // m=8888.888672 // m1=8888.888672 // m2=8888.887695 // n=8888.888800 // n1=8888888888.888889 //%f的默認輸出小數位數就是6位無論有沒有l /*printf的%f說明符的確既能夠輸出float型又能夠輸出 double型。 根據"默認參數提高"規則(在printf這樣的函數的 可變參數列表中 ,不論做用域內有沒有原型,都適用這一規則)float型會被提高爲double型。所以printf()只會看到 雙精度數。嚴格地講,%lf在printf下是未定義的,可是不少系統可能會接受它。要確保可移植性,就要堅持使用%f。*/ printf("m4=%4.2f\n",m); //寬度總共4位,小數兩位,小數點一位,整數一位,這裏整數超過寬度規定,按實際整數位輸出 printf("m5=%9.6f\n",m); //浮點數小數部分不足6位,右對齊 printf("m6=%9.2f\n",m); //整數部分不足6位,右對齊;小數部分超過2位,四捨五入 char c[20]="Hello,world!"; printf("c=%s\n",c); printf("c=%6.9s\n",c); //c=Hello,wor 6.9s表示輸出一個長度長度不小於6且不大於9的字符串。若大於9, 則第9個字符之後的內容將被刪除。