getchar、scanf、puchar、printf函式時系統提供的標準輸入/輸出庫函式,需要呼叫這些函式,需要包含<stdio.h>標頭檔案
1.字元輸出函式putchar
putchar函式的作用時向終端輸出一個字元,函式引數可以是字元變數、字元常量或者字元的ACSII碼、也可以輸出其他轉義字元
如putchar(97);
2.格式輸出函式printf
printf函式的功能是按指定格式控制要求,輸出相應的引數值
格式為:
printf(“格式控制字串“,引數1,引數2,…);
如:
printf(“a=%d,b%f
“,a,b);
“a=%d,b=%f
“是格式控制字串,其中的%d、%f是格式說明,而其他字元都是普通字元;引數a和b是要輸出的資料,格式說明中%d對應引數a,%f對應引數b.
如果a和b的值分別為23和3.7,則輸出結果為:a=23,b=3.700000.
printf函式中常用的格式字元及其作用
輸出的資料型別
|
格式字元
|
作用
|
整型資料
|
d或i
|
以有符號十進位制形式輸出整型數
|
o
|
以無符號八進位制形式輸出整型數
|
|
x或X
|
以無符號十六進位制形式輸出整型數
|
|
u
|
以無符號十六進位制形式輸出整型數
|
|
浮點型資料
|
f
|
以小數形式輸出浮點型數(隱含輸出6位小數)
|
e或E
|
以指數形式輸出浮點型數
|
|
g或G
|
按數值寬度最小形式輸出浮點型數
|
|
字元型資料
|
c
|
輸出一個字元
|
s
|
輸出字串
|
printf函式中的附加格式說明符及其說明
附加字元
|
說明
|
l
|
輸出長整型資料(只可與doxu結合用)
|
m
|
指定資料輸出寬度(即域寬)
|
.n
|
對實型資料,指定輸出n位小數;對字串,指定左端擷取n個字元輸出
|
+
|
使輸出的數值資料無論正負都帶符號輸出
|
–
|
是資料在輸出域內按左對齊的方式輸出
|
如:
%ld——輸出十進位制長整型資料
%m.nf——輸出m為浮點型資料。其中,m為域寬(整數位數+小數位數+小數點),n為小數位數(自動對n位後小數進行四捨五入)或n個字元;若輸出數本身長度小於m,則左邊補空格,即右對齊的方式
%-m.nf——若輸出數本身的長度小於m,則右邊補空格,即為左對齊的方式
注意:
- printf函式格式控制字串中的格式說明符與輸出引數的個數和型別必須一一對應,否則會出現錯誤。
- 格式說明中的%和後面的格式字元之間不能有空格,除了X、E、G格式字元外,其他格式字元必須用小寫字母,如%c不能寫成%C。
- 長整型數應該用%ld(或%lo、%lx、%lu)格式輸出,否則會出現輸出錯誤。
- printf函式的引數可以是常量、變數或表示式。
- 可以再printf函式中的“格式控制字串”內包括“轉義字元”,如`
“ “
“`等 - 如果想輸出字元’%‘,則應該再“格式控制字串”中連續用兩個%%表示
如:printf (“%f%%”,2.0/3);
輸出0.666666%
- 如果格式字元與引數型別不一致,會輸出錯誤結果
3.字元輸入函式getchar
getchar函式的作用時從終端輸入一個字元,getchar函式沒有引數,
一般形式為:
char getchar( )
4.格式輸入函式scanf
一般格式為:
scanf(“格式控制字串”,引數1,引數2,……);
引數指明輸入資料所要放置的地址,變數名前加上&,表示取變數地址。
如:scanf(“a=%d,b=%f”,&a,&b);
scanf函式中常用的格式字元及其作用
輸出的資料型別
|
格式字元
|
作用
|
整型資料
|
d或i
|
以有符號十進位制形式輸出整型數
|
o
|
以無符號八進位制形式輸出整型數
|
|
x或X
|
以無符號十六進位制形式輸出整型數
|
|
u
|
以無符號十六進位制形式輸出整型數
|
|
浮點型資料
|
f
|
以小數形式輸出浮點型數(隱含輸出6位小數)
|
e或E
|
以指數形式輸出浮點型數
|
|
字元型資料
|
c
|
輸出一個字元
|
s
|
輸出字串
|
scanf函式中的附加格式說明符及其說明
附加字元
|
說明 |
l | 輸出長整型資料(只可與doxu結合用) |
m |
指定資料輸出寬度(即域寬) 對(float和double型,域寬指整數位數+小數點+小數位數) |
* | 忽略讀入的資料(即不將讀入資料賦予相應變數) |