printf命令的作用是格式化輸出函式,一般用於向標準輸出設備按規定格式輸出信息。printf()函式的調用格式為:printf("<格式化字元串>", <參量表>)。printf()是C語言標準庫函式,在 stdio.h 中定義。輸出的字元串除了可以使用字母、數字、空格和一些數字元號以外,還可以使用一些轉義字元表示特殊的含義。
基本介紹
- 中文名:格式化輸出
- 外文名:printf
- 外語縮寫:printf(函式名)
- 頭檔案:stdio.h
- 套用:C語言標準庫函式
- 功能:格式化輸出函式
printf函式定義
函式聲明
調用格式
(1)字元串常量;
(2)格式控制字元串;
(3)轉義字元。
字元串常量原樣輸出,在顯示中起提示作用。輸出表列中給出了各個輸出項,要求格式控制字元串和各輸出項在數量和類型上應該一一對應。其中格式控制字元串是以%開頭的字元串,在%後面跟有各種格式控制符,以說明輸出數據的類型、寬度、精度等。
格式控制字元串format
功能

用法詳解
//以下程式用於獲得輸入值i,j並將其輸出(i,j之間以逗號隔開)#include<stdio.h>int main(){ int i, j; scanf("%d %d", &i, &j); printf("i=%d;j=%d", i, j); return 0;}
//以下程式用於輸出“中文百科”#include<stdio.h>int main(){ printf("中文百科"); return 0;}
類型type
字元 | 對應數據類型 | 含義 |
d / i | int | 接受整數值並將它表示為有符號的十進制整數,i是老式寫法 |
o | unsigned int | 無符號8進制整數(不輸出前綴0) |
u | unsigned int | 無符號10進制整數 |
x / X | unsigned int | 無符號16進制整數,x對應的是abcdef,X對應的是ABCDEF(不輸出前綴0x) |
f(lf) | double | |
e / E | double | 科學計數法表示的數,此處"e"的大小寫代表在輸出時用的“e”的大小寫 |
g / G | double | 有效位數,如:%.8g表示單精度浮點數保留8位有效數字。 |
c | char | |
s / S | char * / wchar_t * | 字元串。輸出字元串中的字元直至字元串中的空字元(字元串以'\0‘結尾,這個'\0'即空字元) |
p | void * | 以16進制形式輸出指針 |
n | int * | 到此字元之前為止,一共輸出的字元個數,不輸出文本 |
% | 無輸入 | 不進行轉換,輸出字元‘%’(百分號)本身 |
m | 無 | 列印errno值對應的出錯內容,(例: printf("%m\n"); ) |
標誌flags
字元 | 字元名稱 | 說明 |
- | 減號 | 左對齊,右邊填充空格(默認右對齊) |
+ | 加號 | 在數字前增加符號 + 或 - |
0 | 數字零 | 將輸出的前面補上0,直到占滿指定列寬為止(不可以搭配使用“-”) |
空格 | 輸出值為正時加上空格,為負時加上負號 | |
# | 井號 | type是o、x、X時,增加前綴0、0x、0X type是e、E、f、g、G時,一定使用小數點 type是g、G時,尾部的0保留 |
printf("%5d\n",1000); //默認右對齊,左邊補空格printf("%-5d\n",1000); //左對齊,右邊補空格printf("%+d %+d\n",1000,-1000); //輸出正負號printf("% d % d\n",1000,-1000); //正號用空格替代,負號輸出printf("%x %#x\n",1000,1000); //輸出0xprintf("%.0f %#.0f\n",1000.0,1000.0)//當小數點後不輸出值時依然輸出小數點printf("%g %#g\n",1000.0,1000.0); //保留小數點後後的0printf("%05d\n",1000); //前面補0
輸出最小寬度width
精度.prec
類型長度length
length | 描述 |
---|---|
h | 參數被解釋為短整型或無符號短整型(僅適用於整數說明符:i、d、o、u、x 和 X)。 |
l | 參數被解釋為長整型或無符號長整型,適用於整數說明符(i、d、o、u、x 和 X)及說明符 c(表示一個寬字元)和 s(表示寬字元字元串)。 |
L | 參數被解釋為長雙精度型(僅適用於浮點數說明符:e、E、f、g 和 G)。 |
轉義序列
符號 | 意義 | 符號 | 意義 |
\a | 鈴聲(提醒) | \b | Backspace |
\f | 換頁 | \n | 換行 |
\r | 回車 | \t | 水平制表符 |
\v | 垂直制表符 | \’ | 單引號 |
\” | 雙引號 | \\ | 反斜槓 |
\? | 文本問號 | \ ooo (例如\024) | ASCII字元(OCX) |
\xhh (例如:\x20) | ASCII字元(HEX) | \xhhhh | 寬字元(2位元組HEX) |
int printf(const char *format, [argument]);
int a=6, b;//a的值為6b = 24;//b的值為24printf( "the value of printf is:%d\n", a );printf( "%d\n", b );

套用示例
#include <stdio.h>#define C "C Programming"int main(void){ int a=12345; float b=5.12345678; char e,d,f; scanf("%c %c %c",&e,&d,&f); printf("int is:%d\n",a); printf("float is:%f\n",b); printf("char is:%s\n",C); return 0;}
printf("123\n","456\n","789\n");
printf("123\n" "456\n" "789\n");
printf("123\n"); printf("456\n"); printf("789\n");
#include<stdio.h>int main(void){ int a; scanf("%d",&a); printf("%s",a%(a%100?4:400)?"NO":"YES"); return 0;}