格式化輸出函數(shù)printf( )
printf( )功能:
向系統(tǒng)指定輸出設備按指定的格式輸入任意個任意類型的數(shù)據(jù),并返回實際輸出的字符數(shù)。若出錯,將返回負數(shù)。
printf( )使用形式:
printf("格式控制字符串",輸出項列表);
格式字符(以"%"引導):
(1)d格式字符:用來輸出十進制整數(shù)木缝。
- %d,按整型數(shù)據(jù)的實際長度輸出围辙。
- %md氨肌,m為指定的輸出字段的寬度。若實際位數(shù)小于m酌畜,則左端補空格怎囚;若實際位數(shù)大于m,則按實際位數(shù)輸出。
- %ld恳守,輸出長整型數(shù)據(jù)考婴。
(2)o格式字符("%#o"):以八進制形式輸出整數(shù)。
(3)x格式字符("%#x"):以十六進制形式輸出整數(shù)催烘。
(4)u格式字符:用來輸出unsigned型數(shù)據(jù)沥阱,即無符號數(shù),以十進制輸出伊群。
(5)c格式字符:用來輸出一個字符考杉。
(6)s格式字符:用來輸出一個字符串。
(7)f格式字符:用來輸出實數(shù)(包括單雙精度)舰始,以小數(shù)形式輸出崇棠。 - %f,整數(shù)部分全輸出并輸出6位小數(shù)丸卷。
(8)e格式字符:以指數(shù)形式輸出實數(shù)枕稀。
(9)g格式字符:用來輸出實數(shù),它根據(jù)數(shù)值的大小谜嫉,自動選擇f格式或e格式(選擇輸出時占寬度較小的一種)萎坷,且不輸出無意義的零。
格式字符串:
%[flag][width][.prec][F|N|h|L]Type
(1)標志flag:
- "+":對于正數(shù)符號位輸出為正號"+"沐兰,對于負數(shù)輸出"-"哆档。
- 空格(" "):對于正數(shù)符號位輸出空格,對于負數(shù)輸出"-"住闯。
- "-":輸出時左對齊虐呻,右側(cè)補空格。
- "#":加在代表輸出八進制的類型字符"o"前表示八進制寞秃。
(2)輸出寬度width:用十進制整數(shù)來表示輸出的最少位數(shù)。若實際數(shù)據(jù)的位數(shù)多于指定寬度偶惠,則按實際位數(shù)輸出春寿;若少于指定寬度,則補以空格或"0"忽孽;
(3)精度prec:精度格式符以"."開頭绑改,后跟一個十進制整數(shù)。
意義:如果輸出數(shù)字兄一,則表示數(shù)字的小數(shù)位數(shù)厘线;如果輸出的時字符,則表示輸出字符的個數(shù)出革;若實際位數(shù)大于所定義的精度造壮,則超出部分被截去。
(4)長度:F|n|h|l 表示指針是否是遠指針,或整數(shù)是否是長整數(shù)耳璧。 - F:表示遠指針成箫。
- n:表示近指針。
- h:短整型或單精度浮點數(shù)旨枯。
- l:長整型或雙精度浮點數(shù)蹬昌。
(5)類型Type:
類型指示符:
格式字符 | 說明 |
---|---|
d,i | 以帶符號的十進制形式輸出整數(shù) |
o | 以八進制形式輸出整數(shù) |
u | 以無符號的十進制形式輸出整數(shù) |
x或X | 以十六進制形式輸出整數(shù) |
c | 輸出單個字符 |
s | 輸出字符串 |
f | 以小數(shù)形式輸出實數(shù) |
e或E | 以指數(shù)形式輸出實數(shù) |
g或G | 自動選擇"%f"和"%e"中寬度最小的形式輸出實數(shù) |
(6)具體的格式字符串示例:
- %m.nf:輸出的實數(shù)共占m個字符,其中小數(shù)有n個攀隔。若實際數(shù)值位數(shù)不足m個皂贩,左端補空格;若實際數(shù)值位數(shù)超出規(guī)定的寬度昆汹,則整數(shù)部分按實際輸出明刷,小數(shù)部分四舍五入為n位。
- %e:標準寬度占13位筹煮,其中遮精,尾數(shù)部分為:整數(shù)部分占1位,小數(shù)點占1位败潦,小數(shù)占6位本冲,e占1位;指數(shù)部分為:正負號占1位劫扒,指數(shù)占3位檬洞。
- %m.ne:整個數(shù)寬度至少占m位,n為尾數(shù)部分的小數(shù)部分沟饥,不足的在左端補空格添怔,多出的按實際位數(shù)輸出。
- %ms:輸出一個字符串贤旷,寬度占m位广料。若長度小于m,則右對齊幼驶,左側(cè)補空格艾杏;若長度大于m,則原樣輸出盅藻,不進行截取购桑。
- %-ms:與%ms類似,但長度小于m時氏淑,字符串左對齊勃蜘,右側(cè)補空格。
- %m.ns:整個輸出項占m列假残,但只取字符串中左側(cè)n個字符輸出缭贡。輸出時右對齊,左端補空格。當m<n時匀归,所占寬度m忽略不計坑资,輸出字符串的前n個字符。
- %-m.ns:含義與%m.ns相似穆端,將n個字符輸出在m列范圍內(nèi)袱贮,左對齊,右側(cè)補空格体啰。
(7)注意點: - 任意一個整型數(shù)據(jù)也可以以字符形式輸出攒巍,輸出時,如果整形數(shù)據(jù)超過255的荒勇,先對256做取余操作后再輸出柒莉。
- ”格式字符串“中的格式類型指示符的類型及個數(shù),必須與”輸出項列表“中的輸出項的數(shù)據(jù)類型沽翔、個數(shù)一致兢孝,否則會引起輸出錯誤。
- 如果格式類型指示符的個數(shù)小于輸出項的個數(shù)仅偎,多余的輸出項不予輸出跨蟹;如果格式說明的個數(shù)多于輸出項的個數(shù),多余的格式項輸出不定值或"0"橘沥。
單個字符的輸出函數(shù)putchar( )
putchar( )功能:
向標準輸出設備(顯示器)輸出一個字符窗轩,并返回輸出字符的ASCII值。
putchar( )使用形式:
putchar(ch);
其中"ch"可以是整型或字符型的常量座咆、變量或表達式痢艺,也可以是一個轉(zhuǎn)義字符。輸出時介陶,先計算括號內(nèi)的值堤舒,然后根據(jù)ASCII碼輸出相應的字符。
putchar( )函數(shù)只能用于單個字符的輸出哺呜,且一次只能輸出一個字符舌缤。
常用字母對應的ASCII碼值:
A~Z 65~90
a~z 97~122
實例效果:
printf("%d\n",234);
printf("%3d\n",23144);
printf("%3d\n",21);
printf("%#o\n",23);
printf("%#x\n",17);
printf("%c\n",68);
char a[10] = "abcdef";
printf("%s\n",a);
printf("%f\n",10.1);
printf("%g\n",23.2424);
printf("%5.2f\n",0.123);
printf("%5.2f\n",0.1234567);
printf("%e\n",1331.1341123);
printf("%8.3e\n",1331.1341123);
printf("%8.3e\n",1331.2);
printf("%3s\n",a);
printf("%9s\n",a);
printf("%-9s\n",a);
printf("%4.2s\n",a);
printf("%2.5s\n",a);
printf("%-4.2s\n",a);
printf("%-2.5s\n",a);