printf()【C語言庫函數-stdio.h】

【描述】

C語言庫函數 int printf(const char *format, ...) 發送格式化輸出到標準輸出 stdout

printf()函數的調用格式爲:

printf("<格式化字符串>", <參量表>);

【聲明】

int printf(const char *format, ...)

【參數】

format -- 這是字符串,包含了要被寫入到標準輸出 stdout 的文本。它可以包含嵌入的 format 標籤,format 標籤可被隨後的附加參數中指定的值替換,並按需求進行格式化。format 標籤屬性是 %[flags][width][.precision][length]specifier,具體講解如下:

格式字符 意義
d 以十進制形式輸出帶符號整數(正數不輸出符號)
o 以八進制形式輸出無符號整數(不輸出前綴0)
x,X 以十六進制形式輸出無符號整數(不輸出前綴Ox)
u 以十進制形式輸出無符號整數
f 以小數形式輸出單、雙精度實數
e,E 以指數形式輸出單、雙精度實數
g,G 以%f或%e中較短的輸出寬度輸出單、雙精度實數
c 輸出單個字符
s 輸出字符串
p 輸出指針地址
lu 32位無符號整數
llu 64位無符號整數
flags(標識) 描述
- 在給定的字段寬度內左對齊,默認是右對齊(參見 width 子說明符)。
+ 強制在結果之前顯示加號或減號(+ 或 -),即正數前面會顯示 + 號。默認情況下,只有負數前面會顯示一個 - 號。
空格 如果沒有寫入任何符號,則在該值前面插入一個空格。
# 與 o、x 或 X 說明符一起使用時,非零值前面會分別顯示 0、0x 或 0X。
與 e、E 和 f 一起使用時,會強制輸出包含一個小數點,即使後邊沒有數字時也會顯示小數點。默認情況下,如果後邊沒有數字時候,不會顯示顯示小數點。
與 g 或 G 一起使用時,結果與使用 e 或 E 時相同,但是尾部的零不會被移除。
0 在指定填充 padding 的數字左邊放置零(0),而不是空格(參見 width 子說明符)

 

width(寬度) 描述
(number) 要輸出的字符的最小數目。如果輸出的值短於該數,結果會用空格填充。如果輸出的值長於該數,結果不會被截斷。
* 寬度在 format 字符串中未指定,但是會作爲附加整數值參數放置於要被格式化的參數之前。

 

.precision(精度) 描述
.number 對於整數說明符(d、i、o、u、x、X):precision 指定了要寫入的數字的最小位數。如果寫入的值短於該數,結果會用前導零來填充。如果寫入的值長於該數,結果不會被截斷。精度爲 0 意味着不寫入任何字符。
對於 e、E 和 f 說明符:要在小數點後輸出的小數位數。
對於 g 和 G 說明符:要輸出的最大有效位數。
對於 s: 要輸出的最大字符數。默認情況下,所有字符都會被輸出,直到遇到末尾的空字符。
對於 c 類型:沒有任何影響。
當未指定任何精度時,默認爲 1。如果指定時不帶有一個顯式值,則假定爲 0。
.* 精度在 format 字符串中未指定,但是會作爲附加整數值參數放置於要被格式化的參數之前。

 

length(長度) 描述
h 參數被解釋爲短整型或無符號短整型(僅適用於整數說明符:i、d、o、u、x 和 X)。
l 參數被解釋爲長整型或無符號長整型,適用於整數說明符(i、d、o、u、x 和 X)及說明符 c(表示一個寬字符)和 s(表示寬字符字符串)。
L 參數被解釋爲長雙精度型(僅適用於浮點數說明符:e、E、f、g 和 G)。

附加參數 -- 根據不同的 format 字符串,函數可能需要一系列的附加參數,每個參數包含了一個要被插入的值,替換了 format 參

數中指定的每個 % 標籤。參數的個數應與 % 標籤的個數相同。

【規定符】

  • %d 十進制有符號整數
  • %u 十進制無符號整數
  • %f 浮點數
  • %s 字符串
  • %c 單個字符
  • %p 指針的值
  • %e 指數形式的浮點數
  • %x, %X 無符號以十六進制表示的整數
  • %o 無符號以八進制表示的整數
  • %g 把輸出的值按照 %e 或者 %f 類型中輸出長度較小的方式輸出
  • %p 輸出地址符
  • %lu 32位無符號整數
  • %llu 64位無符號整數

【返回值】

如果成功,則返回寫入的字符總數,否則返回一個負數。

【實例】

輸出各種格式化數據:

// 輸出各種格式化數據

// 開發環境:Visual Studio 2019

// 頭文件
#include <stdio.h>

// 主函數
int main()
{
	// 聲明變量
	char ch = 'A';
	char str[20] = "enter回車鍵";
	float flt = 10.24;
	int no = 520;
	double db = 3.1415926;

	// 輸出數據
	printf("字符爲 %c \n", ch);
	printf("字符串爲 %s \n", str);
	printf("浮點數爲 %f \n", flt);
	printf("整數爲 %d\n", no);
	printf("雙精度值爲 %lf \n", db);
	printf("八進制值爲 %o \n", no);
	printf("十六進制值爲 %x \n", no);
	printf("printf()函數演示完畢!\n");

	return 0;
}

運行效果: 

字符爲 A
字符串爲 enter回車鍵
浮點數爲 10.240000
整數爲 520
雙精度值爲 3.141593
八進制值爲 1010
十六進制值爲 208
printf()函數演示完畢!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章