網(wǎng)站首頁(yè)問答百科 >正文
1、2.標(biāo)志標(biāo)志字符為-、+、#、空格和0五種,其意義下表所示:標(biāo)志格式字符 標(biāo) 志 意 義- ?結(jié)果左對(duì)齊,右邊填空格+ 輸出符號(hào)(正號(hào)或負(fù)號(hào))空格 ? ? ? ? ? ? ? ? 輸出值為正時(shí)冠以空格,為負(fù)時(shí)冠以負(fù)號(hào)# 對(duì)c,s,d,u類無影響;對(duì)o類,在輸出時(shí)加前綴0;對(duì)x類,? ? ? ? ? ? ? ? ? ? ? ?在輸出時(shí)加前綴0x或者0X;對(duì)g,G 類防止尾隨0被刪除;對(duì)于所有的浮點(diǎn)形式,#保證了即使不跟任何數(shù)字,也打印一個(gè)小數(shù)點(diǎn)字符0 ? ? ? ? ? ? ? ? ? ? 對(duì)于所有的數(shù)字格式,用前導(dǎo)0填充字段寬度,若出現(xiàn)-標(biāo)志或者指定了精度(對(duì)于整數(shù)),忽略
2、3.輸出最小寬度用十進(jìn)制整數(shù)來表示輸出的最少位數(shù)。若實(shí)際位數(shù)多于定義的寬度,則按實(shí)際位數(shù)輸出,若實(shí)際位數(shù)少于定義的寬度則補(bǔ)以空格或0。#include "stdio.h"#include "conio.h"main(){???? printf("*%-10d*\n", 223);???? printf("*%+10d*\n" , -232);???? printf("*%2d*\n" , 223);???? printf("*%#d*\n" , -232);???? printf("\n");???? getch();???? printf("*%-10o*\n" , 223);???? printf("*%+10o*\n" , -232);???? printf("*%o*\n" , 223);???? printf("*%#o*\n" , -232);???? printf("\n");???? getch();???? printf("$%-10x$\n" , 223);???? printf("$%0x$\n" , -232);???? printf("$% x$\n" , 223);???? printf("$%#x$\n" , -232);???? printf("\n");???? printf("%-10u\n" , 223);???? printf("%+10u\n" , -232);???? printf("% u\n" , 223);???? printf("%#u\n" , -232);???? printf("\n");???? getch();???? printf("%-10f\n" , 223.11);???? printf("%+10f\n" , 232.11111111);???? printf("% f\n" , -223.11);???? printf("%#f\n" , -232.11111111);???? printf("\n");???? getch();???? printf("%-10e\n" , 223.11);???? printf("%+10e\n" , 232.11111111);???? printf("% e\n" , -223.11);???? printf("%#e\n" , -232.11111111);???? printf("\n");???? getch();???? printf("%-10g\n" , 223.11);???? printf("%+10g\n" , 232.111111111111);???? printf("% g\n" , -223.11);???? printf("%#g\n" , -232.111111111111);???? printf("\n");???? getch();???? printf("%-10c\n" , 'a');???? printf("%+10c\n" , 97);???? printf("% c\n" , 'a');???? printf("%#c\n" , 97);???? printf("\n");???? getch();???? printf("%-20s\n" , "this is a test!");???? printf("%+20s\n" , "2342o34uo23u");???? printf("% 20s\n" , "this is a test!");???? printf("%#s\n" , "2342o34uo23u");???? printf("\n");???? getch();}
3、4.精度精度格式符以“.”開頭,后跟十進(jìn)制整數(shù)。本項(xiàng)的意義是:如果輸出數(shù)字,則表示小數(shù)的位數(shù);如果輸出的是字符,則表示輸出字符的個(gè)數(shù);若實(shí)際位數(shù)大于所定義的精度數(shù),則截去超過的部分。#include "stdio.h"#include "conio.h"main(){???? printf("%.3d\n" , 5555);???? getch();printf("%.3f\n" , 0.88888);???? getch();printf("%.3f\n" , 0.9999);???? getch();printf("%.4s\n" , "this is a test!");???? getch();}
4、5.長(zhǎng)度長(zhǎng)度格式符為h,l兩種,h表示按短整型量輸出,l表示按長(zhǎng)整型量輸出。h和整數(shù)轉(zhuǎn)換說明符一起使用,表示一個(gè)short?? int 或者unsigned short int類型的數(shù)值 ,示例:%hu,%hx,%6.4hdhh和整數(shù)轉(zhuǎn)換說明符一起使用,表示一個(gè)short?? int 或者unsigned short類型的數(shù)值 ,示例:%hhu,%hhx,%6.4hhdj和整數(shù)轉(zhuǎn)換說明符一起使用,表示一個(gè)intmax_t或者uintmax_t類型的數(shù)值 ,示例:%jd,%8jxl和整數(shù)轉(zhuǎn)換說明符一起使用,表示一個(gè)long?int 或者unsigned long int類型的數(shù)值 ,示例:%ld,%8lull和整數(shù)轉(zhuǎn)換說明符一起使用,表示一個(gè)long?int 或者unsigned long int類型的數(shù)值 (C99),示例:%lld,%8lluL和浮點(diǎn)轉(zhuǎn)換說明符一起使用,表示一個(gè)long double的值,示例:%Lf,%10.4Let和整數(shù)轉(zhuǎn)換說明符一起使用,表示一個(gè)ptrdiff_t值(兩個(gè)指針之間的差相對(duì)應(yīng)的類型)(C99),示例:%td,%12tiz和整數(shù)轉(zhuǎn)換說明符一起使用,表示一個(gè)size_t值(sizeof返回的類型)(C99),示例:%zd,%12zxmain(){int a=15;float b=138.3576278;double c=35648256.3645687;char d='p';printf("a=%d,%5d,%o,%x\n",a,a,a,a);printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b);printf("c=%lf,%f,%8.4lf\n",c,c,c);printf("d=%c,%8c\n",d,d);}a<--15b<--138.3576278c<--35648256.3645687d<--'p'main(){???? int a=29;???? float b=1243.2341;???? double c=24212345.24232;???? char d='h';???? printf("a=%d,%5d,%o,%x\n",a,a,a,a);??????? /* 其中“%f”和“%lf ”格式的輸出相同,說明“l(fā)”符對(duì)“f”類型無影響????? * “%5.4lf”指定輸出寬度為5,精度為4,由于實(shí)際長(zhǎng)度超過5故應(yīng)該按實(shí)際位數(shù)輸出,小數(shù)位數(shù)超過4位??????? *?? 部分被截去????? */???? printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b);??????? ???? printf("c=%lf,%f,%8.4lf\n",c,c,c);??????? ???? printf("d=%c,%8c\n",d,d);???? getch();}使用printf函數(shù)時(shí)還要注意一個(gè)問題,那就是輸出表列中的求值順序。不同的編譯系統(tǒng)不一定相同,可以從左到右,也可從右到左。Turbo C是按從右到左進(jìn)行的main(){int i=8;printf("%d\n%d\n%d\n%d\n%d\n",++i,--i,i--,i++,-i--);}
5、6.特殊用法對(duì)于m.n的格式還可以用如下方法表示(例)char ch[20];printf("%*.*s\n",m,n,ch);前邊的*定義的是總的寬度,后邊的定義的是輸出的個(gè)數(shù)。分別對(duì)應(yīng)外面的參數(shù)m和n 。我想這種方法的好處是可以在語(yǔ)句之外對(duì)參數(shù)m和n賦值,從而控制輸出格式。今天(06.6.9)又看到一種輸出格式 %n 可以將所輸出字符串的長(zhǎng)度值賦紿一個(gè)變量, 見下例:int slen;printf("hello world%n", &slen);執(zhí)行后變量被賦值為11。又查了一下, 看到一篇文章說這種格式輸出已經(jīng)確認(rèn)為一個(gè)安全隱患,并且已禁用。再搜搜果然這種用法都被用來搞什么溢出、漏洞之類的,隨便找了一個(gè):格式化字符串攻擊筆記特別注意下%*.*s這種用法。
使用printf打印時(shí)發(fā)現(xiàn),如果數(shù)據(jù)類型和打印使用的類型不一致,結(jié)果就是混亂的。
7、
本文到此結(jié)束,希望對(duì)大家有所幫助。
版權(quán)說明:本文由用戶上傳,如有侵權(quán)請(qǐng)聯(lián)系刪除!
- 上一篇:稅收主要分成什么(稅收都分為什么)
- 下一篇:最后一頁(yè)
猜你喜歡:
- 2022-06-26稅收主要分成什么(稅收都分為什么)
- 2022-06-26如何抽雪茄(如何抽雪茄)
- 2022-06-26pptv怎么下載動(dòng)畫片(pptv怎么下載電影)
- 2022-06-26dnf妖精的尾巴套裝(dnf換裝在妖精的尾巴)
- 2022-06-26波托菲諾小區(qū)(波托菲諾僑香諾園)
- 2022-06-26新聊齋志異梅三娘結(jié)局(新聊齋志異)
- 2022-06-26小學(xué)生手工作品簡(jiǎn)單制作方法及圖片(小學(xué)生手工作品簡(jiǎn)單制作方法)
最新文章:
- 2022-06-262011年的法定節(jié)假日(2012年法定節(jié)假日一共有幾天)
- 2022-06-26試婚:極品老公行不行t(試婚極品老公行不行)
- 2022-06-26楊冪演的十二生肖傳奇好看嗎(主要講了什么)
- 2022-06-26滿洲里市貼吧(誰(shuí)知道滿洲里火網(wǎng))
- 2022-06-26如何在手機(jī)上查詢車貸還剩多少(如何在手機(jī)上查詢車輛違章)
- 2022-06-26明一奶粉怎么樣是正規(guī)的嗎(明一奶粉怎么樣)
- 2022-06-26抖音今年最火的音樂(抖音上很火的音樂2018有哪些)
- 2022-06-26愛情真善美跟夏家三千金(愛情真善美和夏家三千金有什么區(qū)別)
- 2022-06-26白牙素有用嗎(使用白牙素的注意事項(xiàng))
- 2022-06-26開什么店比較賺錢?(現(xiàn)在開什么店賺錢現(xiàn)在開什么店比較好)
- 2022-06-26網(wǎng)上購(gòu)物返現(xiàn)怎樣提取(如何實(shí)現(xiàn)網(wǎng)絡(luò)購(gòu)物返現(xiàn))
- 2022-06-26新閨蜜時(shí)代韓文靜(新閨蜜時(shí)代)
- 2022-06-26艾爾之光艾因轉(zhuǎn)職選擇(艾爾之光幾級(jí)轉(zhuǎn)職)
- 2022-06-26魔獸世界字體怎么設(shè)置(魔獸世界里的懶人字體具體怎么弄)
- 2022-06-26附魔灼熱和寒冰(附魔冰寒的具體功效是)
- 熱點(diǎn)推薦
- 熱評(píng)文章
- 隨機(jī)文章
- pptv怎么下載動(dòng)畫片(pptv怎么下載電影)
- dnf妖精的尾巴套裝(dnf換裝在妖精的尾巴)
- 波托菲諾小區(qū)(波托菲諾僑香諾園)
- 新聊齋志異梅三娘結(jié)局(新聊齋志異)
- 小學(xué)生手工作品簡(jiǎn)單制作方法及圖片(小學(xué)生手工作品簡(jiǎn)單制作方法)
- 舉重運(yùn)動(dòng)項(xiàng)目特點(diǎn)(舉重 運(yùn)動(dòng)項(xiàng)目)
- 如何讓月經(jīng)提前或推遲(如何讓月經(jīng)提前)
- 歌詞就這樣牽著你的手,讓我們十指緊扣(什么歌里面的歌詞有握著你的手我不愿放千金不換的溫暖)
- 我的月光阿蘭(我的月光 阿蘭歌曲)
- 美版有鎖和無鎖的區(qū)別推薦買哪個(gè)(美版有鎖和無鎖的區(qū)別是什么)