
在 C++ 編程上,我們可以使用 cout 將內容顯示出來;在 Java 編程上,我們可以使用 System.out.print() 將內容顯示出來;而在 C 編程上,我們則使用 printf() 將內容顯示出來。
在開始之前,讓我們看看一個簡單的例子︰
|
|
在上面的例子,我們可以看到第 4 行的 printf() 只是將一段純文字輸出,所以只有一個argument。
而在第 5 行的 printf() ,可以分成兩個部份理解。第一個 argument 是輸出字串的格式(format string),而後面是一連串的 arguments 。而在輸出字串的格式內會決定輸出的格式和後面 arguments 的數量。例如上面例子中的輸出字串格式內有3個格式規範符號(format specifier),決定了後面會有 3 個 arguments。
規範符號是由一個 % 符號加上一個轉換字符(conversion character)組成,例如 %d。以下是常用的規範符號︰
| 規範符號 | 意義 |
|---|---|
| %c | 輸出字元 char |
| %d | 輸出10進制整數 |
| %e / %E | 輸出使用科學符號的浮點數。例如3.2154e+2和3.2154E+2 |
| %f | 輸出浮點數 |
| %g / %G | 在$e, %E和%f中選擇比較準確的一個再輸出浮點數 |
| %o | 輸出8進制整數 |
| %s | 輸出字串 string |
| %u | 輸出Unsigned的10進制整數 |
| %x / %X | 輸出16進制整數 |
我們再看看下面的例子︰
|
|
當 argument 輸出時,輸出的位置是 field 。而輸出未元的數量稱為 field width 。 field width 是在 % 和轉換字符中的數字。例如第 5 行的輸出是︰
+-+-+-+-+-+-+-+-+-+
|L| | |3| | | | |U|
+-+-+-+-+-+-+-+-+-+
我們可以看到第 3 個 argument 的長度是 3 ,而 9 就顯示在最右邊的第 3 個位置。同樣道理,第 4 個 argument 的長度是 5,而 U就顯示在 5 格內的最右邊一格。
我們再看看第 5 行的 printf() 。輸出是︰
1.0 + 2.00 = 3.000
我們可以看到 %.3f 即是將浮點數準備至限數點後 3 位。
我們再看多一個例子︰
|
|
輸出的結果是︰
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |1|.|1| | |2|.|2|0| |3|.|3|0|0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
由此可見,格式「%a.bf」內的 a 是字元的數目,而b是小數點後的準確位元。