c 輸出函式 printf

2022-02-08 10:11:29 字數 1711 閱讀 3819

標頭檔案:#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 浮點...