
C 速查手冊
11.6.5 printf()
stdio.h 的函數 (function) printf() 將格式化字串 (string) 傳送到標準輸出裝置。有如下的可指定的轉換格式
| %d, %i | 有正負號的十進位整數 | int |
| %u | 無正負號的十進位整數 | int |
| %o | 無正負號的八進位整數 | int |
| %x, %X | 無正負號的十六進位整數 | int |
| %c | 字元 | char |
| %s | 字串 | char * |
| %f | 浮點數 | double |
| %p | 記憶體位址的編碼 | void * |
| %% | 百分比符號 | % |
printf() 可接受多個參數 (parameter) ,至少要有第一個所要輸出的格式化字串,隨後為依格式化字串中轉換格式的數列接上需要的參數,這是說,如果格式化字串中用了三個轉換格式,其後就需要另外三個對應的參數。
以下程式示範使用 printf() 的結果
#include <stdio.h>
int main(void)
{
int n = 5;
printf("He has %d books.\n", n);
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:cprintf1.c
功能:示範 stdio.h 中函數 printf() 的使用
作者:張凱慶 */
編譯後執行,結果如下
| $ gcc cprintf1.c |
| $ a.out |
| He has 5 books. |
| $ |
轉換格式的百分比符號後可接數字跟小數點,數字表示要印出幾格空間,若有負號則靠左對齊,無負號則靠右對齊,小數點後接數字則表示要列印到小數點後幾位。如下例每列印出 12 格,小數點後 8 位,靠右對齊
#include <stdio.h>
int main(void)
{
double n = 22.2;
int i;
for (i = 1; i <= 10; i++) {
printf("%12.8f\n", n / i);
}
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:cprintf2.c
功能:示範 stdio.h 中函數 printf() 的使用
作者:張凱慶 */
編譯後執行,結果如下
| $ gcc cprintf2.c |
| $ a.out |
| 22.20000000 |
| 11.10000000 |
| 7.40000000 |
| 5.55000000 |
| 4.44000000 |
| 3.70000000 |
| 3.17142857 |
| 2.77500000 |
| 2.46666667 |
| 2.22000000 |
| $ |
