/

C轉換格式符和修飾符

C轉換格式符和修飾符

一個有用的 C 轉換格式符和修飾符的參考手冊。

在這篇文章中,我想為你列出所有可以在 printf()scanf() 和類似的輸入輸出函數中使用的 轉換格式符

格式符 含義
%d / %i 有符號十進制整數
%u 無符號十進制整數
%c 無符號 char
%s 字符串
%p 指針的十六進制形式
%o 無符號八進制整數
%x / %X 無符號十六進制數
%e 科學記號表示的浮點數(使用小寫 e
%E 科學記號表示的浮點數(使用大寫 E
%f 十進制表示的 double 數字
%g / %G 根據值,在十進制或科學記號中表示的 double 數字

除了這些格式符,我們還有一組 修飾符

首先是 數字。在 % 和格式符之間使用一個數字,你可以指定最小的字段寬度。例如:%3d 會佔用 3 個空間,不管打印的數字是什麼。

下面這段代碼:

1
2
3
4
printf("%4d\n", 1);
printf("%4d\n", 12);
printf("%4d\n", 123);
printf("%4d\n", 1234);

應該打印出:

1
2
3
4
   1
12
123
1234

如果在數字之前加上一個點,則表示精度:即小數位數。這當然適用於十進制數字。例如:

1
2
3
4
printf("%4.2f\n", 1.0);
printf("%4.3e\n", 12.232432442);
printf("%4.1e\n", 12.232432442);
printf("%4.1f\n", 123.22);

將打印:

1
2
3
4
1.00
1.223e+01
1.2e+01
123.2

除了數字,我們還有三個特殊的字母:hlL

  • h,與整數一起使用,表示 short int(例如 %hd)或 short unsigned int(例如 %hu
  • l,與整數一起使用,表示 long int(例如 %ld)或 long unsigned int(例如 %lu
  • L,與浮點數一起使用,表示 long double(例如 %Lf

tags: [“c”, “conversion specifiers”, “modifiers”]