在 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是小數點後的準確位元。