首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言格式控制符與轉義字符完整速查手冊

     編輯:關於C語言

printf/scanf 格式字符串是 C 語言 I/O 的核心。本文整理**格式控制符完整語法**、**所有轉義字符**、**輸出精度控制**、**正負號顯示技巧**與**常見陷阱**,作為桌面速查手冊。

一、printf 格式控制符完整語法

%[flags][width][.precision][length]type

1. 標誌

2. 寬度

  • 數字:最小輸出寬度,不足左填空格 (或 0)
  • *:從下一個 int 參數獲取寬度

3. 精度

符號含義
-左對齊 (默認右對齊)
+**正數顯示 + 號**,負數顯示 -
空格正數前加空格,負數前 - (與 + 互斥)
#八進制前加 0,十六進制前加 0x/0X,浮點強制顯示小數點
0寬度不足時**前導填 0** (數值類型)

4. 長度修飾符

類型含義
整數最小數字位數 (不足前導 0)
浮點 (f/e)小數點後位數 (四捨五入)
浮點 (g/G)最大有效位數
字符串 (s)最大字符數 (截斷)
修飾符對應類型
hhsigned char / unsigned char
hshort / unsigned short
llong / unsigned long / double (僅 %lf)
lllong long / unsigned long long
jintmax_t / uintmax_t
zsize_t / ssize_t
tptrdiff_t
Llong double

5. 類型字符完整表

字符參數類型輸出形式
d/iint有符號十進制
uunsigned無符號十進制
ounsigned八進制
x/Xunsigned十六進制 (abcdef/ABCDEF)
fdouble定點小數 (默認 6 位)
e/Edouble科學計數法 (1 位整數 + 6 位小數)
g/Gdouble自動選 f/e (短者),去尾部 0
a/Adouble十六進制浮點 (C99)
cint單字符 (unsigned char)
schar*字符串 (至 \0)
pvoid*指針地址 (實現定義格式)
nint***寫入已輸出字符數** (不輸出)
%無字面 %

二、轉義字符完整表

轉義序列含義ASCII 碼
\a響鈴 (BEL)0x07
\b退格 (BS)0x08
\f換頁 (FF)0x0C
\n換行 (LF) — **實際為回車換行**0x0A
\r回車 (CR) — 光標歸行首0x0D
\t水平製表 (HT) — 通常 4/8 格可配置0x09
\v垂直製表 (VT) — 僅影響打印機0x0B
\\反斜槓0x5C
\'單引號 (字符常量中必需)0x27
\"雙引號 (字符串中可選)0x22
\?問號 (避免三字母組)0x3F
\ddd1-3 位八進制字符-
\xhh1-2 位十六進制字符-
\0空字符 (NULL)0x00

三、關鍵細節與技巧

  1. 浮點精度: float 傳給 %f 自動提升 double,僅前 7 位有效;double 前 15-16 位有效,輸出默認 6 位小數
  2. 格式不匹配: 編譯器**不檢查**格式字符串與參數類型匹配,運行時輸出垃圾值
  3. 正負號顯示: printf("%+d %+d %+d\n", -5, 0, 5); → -5 +0 +5;printf("% d\n", i); 正數前空格
  4. %g vs %e vs %f: %g 總共 6 位有效數字;%e 小數點後 6 位;%f 固定小數點後 6 位
  5. 字符 vs 字符串引號: 字符常量 '\'' 必須轉義單引號;字符串 "'" 直接用單引號,**勿雙重轉義**
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved