printf()函式是格式化輸出函式, 一般用於向標準輸出設備按規定格式輸出信息。
printf()函式的調用格式為: printf("<格式化字元串>", <參量表>)。
格式輸出,它是c語言中產生格式化輸出的函式(在 stdio.h 中定義)。用於向終端(顯示器、控制台等)輸出字元。格式控制由要輸出的文字和數據格式說明組成。要輸出的文字除了可以使用字母、數字、空格和一些數字元號以外,還可以使用一些轉義字元表示特殊的含義。
基本介紹
- 中文名:格式化輸出
- 外文名:Print Format
- 外語縮寫:printf(函式名)
- 頭檔案:stdio.h
原型
功能
用法
//以下程式用於獲得輸入值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;}
字元 | 對應數據類型 | 含義 |
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"); ) |
字元 | 字元名稱 | 說明 |
- | 減號 | 左對齊,右邊填充空格(默認右對齊) |
+ | 加號 | 在數字前增加符號 + 或 - |
0 | 數字零 | 將輸出的前面補上0,直到占滿指定列寬為止(不可以搭配使用“-”) |
空格 | 輸出值為正時加上空格,為負時加上負號 | |
# | 井號 | type是o、x、X時,增加前綴0、0x、0X type是e、E、f、g、G時,一定使用小數點 type是g、G時,尾部的0保留 |
int a=1;float b=1.0;char str[12]="Hello World";printf("This is an example of printf:\n");printf("a is %d,b is %f,and a+b=%f",a,b,a+b);printf("I want to say,%s",str);
符號 | 意義 | 符號 | 意義 |
\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;}
#include <stdio.h>#include<string.h>int main(void){ char ch[20]; int m,n; strcpy(ch,"Happy!"); scanf("%d%d",&m,&n); printf("%*.*s\n",m,n,ch); return 0;}