標頭檔案:#include
定義函式:int printf(const char * format, ...);
函式說明:printf()會根據引數format 字串來轉換並格式化資料, 然後將結果寫出到標準輸出裝置, 直到出現字串結束('\0')為止。
引數format 字串可包含下列三種字元型別:
1. 一般文字, 伴隨直接輸出.
2. ascii 控制字元, 如\t、\n 等.
3. 格式轉換字元.
格式轉換為乙個百分比符號(%)及其後的格式字元所組成. 一般而言, 每個%符號在其後都必需有一printf()的引數與之相呼應 (只有當%%轉換字元出現時會直接輸出%字元), 而欲輸出的資料型別必須與其相對應的轉換字元型別相同.
printf()格式轉換的一般形式如下:
%(flags)(width)(. prec)type
以中括號括起來的引數為選擇性引數, 而%與type 則是必要的. 底下先介紹type 的幾種形式:
1、整數
%d 整數的引數會被轉成--有符號的十進位制數字
%u 整數的引數會被轉成--無符號的十進位制數字
%o 整數的引數會被轉成--無符號的八進位制數字
%x 整數的引數會被轉成--無符號的十六進製制數字, 並以小寫abcdef 表示
%x 整數的引數會被轉成--無符號的十六進製制數字, 並以大寫abcdef 表示浮點型數
%f double 型的引數會被轉成十進位制數字, 並取到小數點以下六位, 四捨五入.
%e double 型的引數以指數形式列印, 有乙個數字會在小數點錢, 六位數字在小數點後, 而在指數部分會以小寫的e 來表示.
%e 與%e 作用相同, 唯一區別是指數部分將以大寫的e 來表示.
%g double 型的引數會自動選擇以%f 或%e 的格式來列印, 其標準是根據列印的數值及所設定的有效位數來決定.
%g 與%g 作用相同, 唯一區別在以指數形態列印時會選擇%e 格式.
2、字元及字串
1、%c 整型數的引數會被轉成unsigned char 型列印出.
2、%s 指向字串的引數會被逐字輸出, 直到出現null 字元為止
3、%p 如果是引數是"void *"型指標則使用十六進製制格式顯示.
prec 有幾種情況
1. 正整數的最小位數.
2. 在浮點型數中代表小數字數
3. 格式代表有效位數的最大值.
4. 在%s 格式代表字串的最大長度.
5.若為×符號則代表下個引數值為最大長度.
width 為引數的最小長度, 若此欄並非數值, 而是*符號, 則表示以下乙個引數當做引數長度。
flags 有下列幾種情況
1、+ 一般在列印負數時, printf ()會加印乙個負號, 整數則不加任何負號. 此旗標會使得在列印正數前多乙個正號 (+).
2、# 此旗標會根據其後轉換字元的不同而有不同含義. 當在型別為o 之前 (如%#o), 則會在列印八進位制數值前多印乙個o。而在型別為x 之前 (%#x)則會在列印十六進製制數前多印'0x', 在型態為e、e、f、g 或g 之前則會強迫數值列印小數點. 在型別為g 或g 之前時則同時保留小數點及小數字數末尾的零.
3、0 當有指定引數時, 無數字的引數將補上0.預設是關閉此旗標, 所以一般會列印出空白字元.
返回值:成功則返回實際輸出的字元數, 失敗則返回-1, 錯誤原因存於errno 中.
範例#include
main()
printf函式輸出
在筆試的時候,問了這樣一道選擇題 int main 有這樣幾個選項 a.1,2,3 b.1,2 c 1 d.編譯錯誤 答案是 b 當時雖然回答正確,但是總覺得對printf的輸出很是模糊,仔細查閱了相關資料發現還是需要注意的!先宣告下,以下編譯都是在vc 6.0中執行的結果 先來看下面一段 int ...
格式輸出函式printf
1 格式輸出函式的一般形式 函式原型 int printf char format argument,函式功能 按規定格式向輸出裝置 一般為顯示器 輸出資料,並返回實際輸出的字元數,若出錯,則返回負數。它使用的一般形式為 printf 格式控制字串 輸出項列表 語句中 輸出項列表 列出要輸出的表示式...
C語言中printf()函式格式輸出
printf 函式是格式輸出函式,請求printf 列印變數的指令取決與變數的型別 例如,在列印整數是使用 d符號,在列印字元是用 c 符號 這些符號被稱為轉換說明 因為它們指定了如何不資料轉換成可顯示的形式 下列列出的是 標準peintf 提供的各種轉換說明 轉換說明及作為結果的列印輸出 a 浮點...