資料輸出語句
本小節介紹的是向標準輸出裝置顯示器輸出資料的語句。在C語言中,所有的資料輸入/輸出都是由庫函數完成的。 因此都是函數語句。本小節先介紹printf函數和putchar函數。printf函數printf函數稱為格式輸出函數,其關鍵字最末一個字母f即為“格式”(format)之意。其功能是按使用者指定的格式, 把指定的資料顯示到顯示器螢幕上。在前面的例題中我們已多次使用過這個函數。
一、printf函數調用的一般形式
printf函數是一個標準庫函數,它的函數原型在標頭檔“stdio.h”中。但作為一個特例,不要求在使用 printf 函數之前必須包含stdio.h檔案。printf函數調用的一般形式為: printf(“格式控制字元串”,輸出表列)其中格式控制字元串用於指定輸出格式。 格式控制串可由格式字串和非格式字串兩種組成。格式字串是以%開頭的字串,在%後面跟有各種格式字元,以說明輸出資料的類型、形式、長度、小數位元等。如“%d”表示按十進位整型輸出,“%ld”表示按十進位長整型輸出,“%c”表示按字元型輸出等。後面將專門給予討論。
非格式字串在輸出時原樣照印,在顯示中起提示作用。 輸出表列中給出了各個輸出項, 要求格式字串和各輸出項在數量和類型上應該一一對應。
void main()
{
int a=88,b=89;
printf("%d %d\n",a,b);
printf("%d,%d\n",a,b);
printf("%c,%c\n",a,b);
printf("a=%d,b=%d",a,b);
}
a<--8,b<--89
printf("%d %d\n",a,b);
printf("%d,%d\n",a,b);
printf("%c,%c\n",a,b);
printf("a=%d,b=%d",a,b);
本例中四次輸出了a,b的值,但由于格式控制串不同,輸出的結果也不相同。第四行的輸出語句格式控制串中,兩格式串%d 之間加了一個空格(非格式字元),所以輸出的a,b值之間有一個空格。第五行的printf語句格式控制串中加入的是非格式字元逗號, 因此輸出的a,b值之間加了一個逗號。第六行的格式串要求按字元型輸出 a,b值。第七行中為了提示輸出結果又增加了非格式字串。
二、格式字串
在Turbo C中格式字串的一般形式為: [標誌][輸出最小寬度][.精度][長度]類型 其中方括弧[]中的項為可選項。各項的意義介紹如下:
1.類型類型字元用以表示輸出資料的類型,其格式符和意義下表所示:
表示輸出類型的格式字元 格式字元意義
d 以十進位形式輸出帶正負號的整數(正數不輸出符號)
o 以八進位形式輸出不帶正負號的整數(不輸出首碼O)
x 以十六進位形式輸出不帶正負號的整數(不輸出首碼OX)
u 以十進位形式輸出不帶正負號的整數
f 以小數形式輸出單、雙精確度實數
e 以指數形式輸出單、雙精確度實數
g 以%f%e中較短的輸出寬度輸出單、雙精確度實數
c 輸出單個字元
s 輸出字串
2.標誌
標誌字元為-、+、#、空格四種,其意義下表所示:
標誌格式字元 標 志 意 義
- 結果靠左對齊,右邊填空格
+ 輸出符號(正號或負號)空格輸出值為正時冠以空格,為負時冠以負號
# 對c,s,d,u類無影響;對o類, 在輸出時加首碼。對x類,在輸出時加首碼0x;對e,g,f 類當結果有小數時才給出小數點