C語言printf格式控制字符串


格式字符串的形式為: % [輸出最小寬度] [.精度] [長度] 類型 

例如,%d格式符表示 用十進制整形格式輸出。%f表示用實型格式輸出,%5.2f 格式表示輸出寬度為5(包括小數點),並包含2位小數。常用的輸出格式及含義如下:

 

printf 函數文檔



函數概要:

printf 函數用於打印格式化字符串到標准輸出流。


函數原型:

#include <stdio.h>
...
int printf ( const char * format, ... );


參數解析:

1、format 參數

format 參數是一個格式化字符串,由格式化占位符和普通字符組成。

格式化占位符(以 % 開頭)用於指明輸出的參數值如何格式化。


格式化占位符的語法如下:

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

每一個格式化占位符均以 % 開始,以轉換字符結束。


specifier(轉換字符,必選)的內容及含義如下:

轉換字符
參數類型;轉換結果
c
char;字符
d
int;有符號十進制整數
i
同上
e
double;以指數形式輸出單、雙精度浮點數(小寫 e)
E
同上(大寫 E)
f
double;以小數形式輸出單、雙精度浮點數
g
double;以 %f 或 %e 中較短的輸出寬度輸出單、雙精度浮點數(指數顯示小寫 e)
G
同上(指數顯示大寫 E)
o
unsigned int;無符號八進制(無前導 0)
s
char *;字符串
u
int;無符號十進制
x
unsigned int;無符號十六進制(無前導 0x)
X
同上(無前導 0X)
p
void *;指針值
n
int *;存放已寫字符的個數
%
不進行參數轉換;% 自身


注:如果 % 后邊的字符不是轉換字符,則其行為沒有定義。


flags(標志,可選)的內容即含義如下:

標志
含義
-
指定被轉換的參數在其字段內左對齊(默認是右對齊)
+
指定在輸出的數前面加上正負號
空格
如果第一個字符不是正負號,則在其前面加上一個空格
0
對於數值轉換,當輸出長度小於字段寬度時,添加前導 0 進行填充
#
指定另一種輸出形式:
1. 如果轉換字符為 o,則第一個數字為 0
2. 如果轉換字符為 x 或 X,則指定在輸出的非 0 值錢加 0x 或 0X
3. 對於轉換字符為 e、E、f、g 或 G 的情況,指定輸出總是包含一個小數點。另外,對於轉換字符為 g 或 G,還指定輸出值尾部無意義的 0 將被保留


注:flags 可同時出現多個,且無順序要求。


width(寬度,可選)是一個數值,用於指定最小字段的寬度

轉換后的參數輸出寬度至少要達到這個數值。如果參數的字符數小於該數值,則在參數左邊(如果 flags 設置為 -,要求左對齊的話則在右邊)填充一些字符。填充字符通常為空格,但是如果 flags 設置為 0,則填充字符為數字 0。


.precision(.精度,可選),通過點號(.)分隔字段的寬度和精度

  • 對於字符串,它指定打印的字符的最大個數
  • 對於整數,它指定打印的數字位數(必要時可加填充位 0 以達到寬度要求)
  • 對於轉換字符為 e、E 或 f,它指定打印的小數點后的數字位數
  • 對於轉換字符為 g 或 G,它指定打印的有效數字位數



length(長度修飾符,可選)的值可以是 h、hh、l、ll 或 L

  • hh 表示將相應的參數按 signed char 或 unsigned char 類型輸出
  • h 表示將相應的參數按 short 或 unsigned short 類型輸出
  • l 表示將相應的參數按 long 或 unsigned long 類型輸出
  • ll 表示將相應的參數按 long long 或 unsigned long long 類型輸出
  • L 表示將相應的參數按 long double 類型輸出



2、... 附加參數

該參數的個數由格式化字符串決定。

每個參數的值應當與前面格式化字符串中的占位符類型和位置一一對應。


返回值:

如果函數調用成功,返回值是實際打印的字符數(不包含表示字符串結束的 '\0');

如果函數調用失敗,返回值是一個負數。

#include <stdio.h>

int main()
{
        int a = 520;
        char b = 'F';
        float c = 3.14;
        double d = 3.141592653;

        printf("魚C工作室創辦於2010年的%d\n", a);
        printf("I love %cishC.com!\n", b);
        printf("圓周率是:%.2f\n", c);
        printf("精確到小數點后9位的圓周率是:%11.9f\n", d);

        return 0;
}

 

魚C工作室創辦於2010年的520
I love FishC.com!
圓周率是:3.14
精確到小數點后9位的圓周率是:3.141592653


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM