程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> printf格式化輸出詳解

printf格式化輸出詳解

編輯:C++入門知識


printf()格式轉換的一般形式如下
%(flags)(width)(.prec)type
以括號括起來的參數為選擇性參數,而%與type則是必要的。底下先介紹type的幾種形式
%d 整數的參數會被轉成一有符號的十進制數字
%u 整數的參數會被轉成一無符號的十進制數字
%o 整數的參數會被轉成一無符號的八進制數字
%x 整數的參數會被轉成一無符號的十六進制數字,並以小寫abcdef表示
%X 整數的參數會被轉成一無符號的十六進制數字,並以大寫ABCDEF表示浮點型數

%f double 型的參數會被轉成十進制數字,並取到小數點以下六位,四捨五入。
%e double型的參數以指數形式打印,有一個數字會在小數點前,六位數字在小數點後,而在指數部分會以小寫的e來表示。
%E 與%e作用相同,唯一區別是指數部分將以大寫的E 來表示。
%g double 型的參數會自動選擇以%f 或%e 的格式來打印,其標准是根據欲打印的數值及所設置的有效位數來決定。
%G 與%g 作用相同,唯一區別在以指數形態打印時會選擇%E 格式。

字符及字符串
%c 整型數的參數會被轉成unsigned char型打印出。
%s 指向字符串的參數會被逐字輸出,直到出現NULL字符為止
%p 如果是參數是“void *”型指針則使用十六進制格式顯示。

prec 有幾種情況
1. 正整數的最小位數。
2. 在浮點型數中代表小數位數
3. 在%g 格式代表有效位數的最大值。
4. 在%s格式代表字符串的最大長度。
5. 若為*符號則代表下個參數值為最大長度。

width為參數的最小長度,若此欄並非數值,而是*符號,則表示以下一個參數當做參數長度。

flags 有下列幾種情況

+ 一般在打印負數時,printf()會加印一個負號,此旗標會使得在打印正數前多一個正號(+)。
# 此旗標會根據其後轉換字符的不同而有不同含義。當在類型為o 之前(如%#o),則會在打印八進制數值前多印一個0(表示是八進制)。
而在類型為x 之前(%#x)則會在打印十六進制數前多印’0x’,在型態為e、E、f、g或G 之前則會強迫數值打印小數點。在類型為g 或G之前時則同時保留小數點及小數位數末尾的零。
0 當有指定參數時,無數字的參數將補上0。默認是關閉此旗標,所以一般會打印出空白字符

最近在重溫C語言,發現很多以前一知半解的知識點,找出來,轉載一篇解釋得很仔細的文章。

printf 格式輸出

關鍵詞: printf

格式代碼

A

ABC

ABCDEFGH

%S

A

ABC

ABCDEFGH

%5S

####A

##ABC

ABCDEFGH

%.5S

A

ABC

ABCDE

%5.5S

####A

##ABC

ABCDE

%-5S

A####

ABC##

ABCDEFGH

Printf 格式化字符串

格式代碼

1

-12

12345

123456789

%d

1

-12

12345

123456789

%6d

#####1

###-12

#12345

123456789

%.4d

0001

-0012

12345

123456789

%6.4d

##0001

#-0012

#12345

123456789

%-4d

1####

-12#

12345

123456789

%04d

0001

-012

12345

123456789

%+d

+1

-12

+12345

+123456789

Printf格式化整型數值

格式代碼

1

.01

.00012345

12345.6789

%f

1.000000

0.010000

0.000123

12345.678900

%10.2d

######1.00

#####0.01

######0.00

##12345.67

%e

1.000000e+00

1.000000e-02

1.234500e-04

1.234568e+04

%.4e

1.0000e+00

1.0000e-02

1.2345e-04

1.2346e+04

%g

1

0.01

0.00012345

12345.7

格式代碼

6.023e23

 

%f

60229999999999975882752.000000

 

%10.2e

60229999999999975882752.00

 

%e

6.023000e+23

 

%.4e

6.0230e+23

 

%g

6.023e+23

 

Format 參數是包含三種對象類型的一個字符串:

  * 無格式字符復制到輸出流。

  * 轉換規范,每個規范導致在值參數列表中檢索 0 個或更多個項。

  * 以下轉義序列。在復制到輸出流時,這些序列導致它們的相關操作在有此功能的設備上顯示:

  \\ 反斜槓

  \a 警告

  \b 退格

  \f 換頁

  \n 換行

  \r 回車

  \t 跳格

  \v 垂直跳格

  \ddd ddd 是 1、2 或 3 位八進制數字。這些轉義序列作為由八進制數指定的具有數字值的字節顯示。


作者:laoyi19861011

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved