




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、VC+中Format函數(shù)詳解函數(shù)說(shuō)明Format是CString類的一個(gè)成員函數(shù),它通過(guò)格式操作使任意類型的數(shù)據(jù)轉(zhuǎn)換成一個(gè)字符串。 函數(shù)聲明function Format(const Format: string; const Args: array of const): string; overload; 函數(shù)功能事實(shí)上Format方法有兩種形式,另外一種是三個(gè)參數(shù)的,主要區(qū)別在于它是線程安全的, 但并不多用,所以這里只對(duì)第一個(gè)介紹。Format參數(shù)是一個(gè)格式字符串,用于格式化Args里面的值的。Args是一個(gè)變量數(shù)組,即它里面可以有多個(gè)參數(shù),而且每個(gè)參數(shù)可以不同。 例如: Format(m
2、y name is %6s,wind); 返回的是:my name is wind 函數(shù)參數(shù)Format里面可以寫普通的字符串,比如my name is ,但有些格式指令字符具有特殊意義,比如%6s 格式指令具有以下的形式: % index : - width . prec type 它是以%開(kāi)始,而以type結(jié)束,type表示一個(gè)具體的類型。中間是用來(lái)格式化type類型的指令字符,是可選的。各個(gè)參數(shù)的含義與用途如下; type type參數(shù)可選的類型有d,u,f,e,g,n,m,p,s,x. 1) d 十進(jìn)制數(shù),表示一個(gè)整型值,u 和d一樣是整型值,但它是無(wú)符號(hào)的,而如果它對(duì)應(yīng)的值是負(fù)的,則
3、返回時(shí)是一個(gè)2的32次方減去這個(gè)負(fù)數(shù)的絕對(duì)值。 例如:Format(this is %u,-2); 返回的是:this is 4294967294 2)f 對(duì)應(yīng)浮點(diǎn)數(shù) 3)e科學(xué)表示法,對(duì)應(yīng)整型數(shù)和浮點(diǎn)數(shù) 例如:Format(this is %e,-2.22); 返回的是:this is -2.220000E+000 4)g 這個(gè)只能對(duì)應(yīng)浮點(diǎn)型,且它會(huì)將值中多余的數(shù)去掉 例如:Format(this is %g,02.200); 返回的是:this is 2.2 5)n 只能對(duì)應(yīng)浮點(diǎn)型,將值轉(zhuǎn)化為號(hào)碼的形式,看一個(gè)例子就明白了 例如:Format(this is %n,4552.2176);
4、返回的是:this is 4,552.22 注意:一是,只表示到小數(shù)后兩位 二是,即使小數(shù)沒(méi)有被截?cái)啵膊粫?huì)也像整數(shù)部分一樣有逗號(hào)來(lái)分開(kāi)的 6)m 錢幣類型,但關(guān)于貨幣類型有更好的格式化方法,這里只是簡(jiǎn)單的格式化,另外它只對(duì)應(yīng)于浮點(diǎn)值 例如:Format(this is %m,9552.21); 返回的是:this is ¥9,552.21 7)p 對(duì)應(yīng)于指針類型,返回的值是指針的地址,以十六進(jìn)制的形式來(lái)表示 例如: Format(this is %p,p); 返回的是:this is 0012F548 8)s 對(duì)應(yīng)字符串類型 9)x 必須是一個(gè)整形值,以十六進(jìn)制的形式返回 例如:Forma
5、t(this is %X,15); 返回的是:this is F 下面介紹格式化Type的指令: index : :index指示Args中參數(shù)顯示的順序 。 例如:Format(this is %d %d,12,13); 其中第一個(gè)%d的索引是0,第二個(gè)%d是1,所以字符顯示的時(shí)候,是這樣:this is 12 13 若定義為:Format(this is %1:d %0:d,12,13); 那么返回的字符串就變成了:this is 13 12 若定義為:Format(%d %d %d %0:d %d, 1, 2, 3, 4) ; 那么將返回的是:1 2 3 1 2 若想返回的是1 2 3
6、1 4,必須這樣定義:Format(%d %d %d %0:d %3:d, 1, 2, 3, 4) ; 注意:索引不能超出Args中的個(gè)數(shù),不然會(huì)引起異常。 例如:Format(this is %2:d %0:d,12,13); 由于Args中只有12 13 兩個(gè)數(shù),所以Index只能是0或1,這里為2就錯(cuò)了 。 width :指定將被格式化的值占的寬度。 例如:Format(this is %4d,12); 返回的是:this is 12 如果Width的值小于參數(shù)的長(zhǎng)度,則沒(méi)有效果。 例如:Format(this is %1d,12); 返回的是:this is 12 - :這個(gè)指定參數(shù)向
7、左對(duì)齊,和width合在一起最可以看到效果。 例如:Format(this is %-4d,yes,12); 返回的是:this is 12 ,yes . prec :指定精度,對(duì)于浮點(diǎn)數(shù)效果最佳。 例如:Format(this is %.2f,1.1234); 返回的是: this is 1.12 又如:Format(this is %.7f,1.1234); 返回的是: this is 1.1234000 而對(duì)于整型數(shù),如果prec比如整型的位數(shù)小,則沒(méi)有效果,反之比整形值的位數(shù)大,則會(huì)在整型值的前面以0補(bǔ)之。 例如:Format(this is %.7d,1234); 返回的是:this
8、 is 0001234 對(duì)于字符型,剛好和整型值相反,如果prec比字符串型的長(zhǎng)度大,則沒(méi)有效果,反之比字符串型的長(zhǎng)度小,則會(huì)截?cái)辔膊康淖址?例如:Format(this is %.2s,1234); 返回的是:this is 12 之前說(shuō)過(guò)的例子:Format(this is %e,-2.22); 返回的是:this is -2.220000E+000 若這樣:Format(this is %.2e,-2.22); 就可以解決了! 編輯本段二 FormatDateTime的用法他的聲明為: function FormatDateTime(const Format: string; Date
9、Time: TDateTime): string; overload; 當(dāng)然和Format一樣還有一種,但這里只介紹常用的第一種 Format參數(shù)是一個(gè)格式化字符串。DateTime是時(shí)間類型。返回值是一種格式化后的 字符串 重點(diǎn)來(lái)看Format參數(shù)中的指令字符 c 以短時(shí)間格式顯示時(shí)間,即全部是數(shù)字的表示 FormatdateTime(c,now); 輸出為:2004-8-7 9:55:40 d 對(duì)應(yīng)于時(shí)間中的日期,日期是一位則顯示一位,兩位則顯示兩位 FormatdateTime(d,now); 輸出可能為131 dd 和d的意義一樣,但它始終是以兩位來(lái)顯示的 FormatdateTime
10、(dd,now); 輸出可能為0131 ddd 顯示的是星期幾 FormatdateTime(ddd,now); 輸出為: 星期六 dddd 和ddd顯示的是一樣的。 但上面兩個(gè)如果在其他國(guó)家可能不一樣。 ddddd 以短時(shí)間格式顯示年月日 FormatdateTime(ddddd,now); 輸出為:2004-8-7 dddddd 以長(zhǎng)時(shí)間格式顯示年月日 FormatdateTime(dddddd,now); 輸出為:2004年8月7日 e/ee/eee/eeee 以相應(yīng)的位數(shù)顯示年 FormatdateTime(ee,now); 輸出為:04 (表示04年) m/mm/mmm/mmmm 表
11、示月 FormatdateTime(m,now); 輸出為:8 FormatdateTime(mm,now); 輸出為 08 FormatdateTime(mmm,now); 輸出為 八月 FormatdateTime(mmmm,now); 輸出為 八月 和ddd/dddd 一樣,在其他國(guó)家可能不同 yy/yyyy 表示年 FormatdateTime(yy,now); 輸出為 04 FormatdateTime(yyyy,now); 輸出為 2004 h/hh,n/nn,s/ss,z/zzz 分別表示小時(shí),分,秒,毫秒 t 以短時(shí)間格式顯示時(shí)間 FormatdateTime(t,now);
12、輸出為 10:17 tt 以長(zhǎng)時(shí)間格式顯示時(shí)間 FormatdateTime(tt,now); 輸出為10:18:46 ampm 以長(zhǎng)時(shí)間格式顯示上午還是下午 FormatdateTime(ttampm,now); 輸出為:10:22:57上午 大概如此,如果要在Format中加普通的字符串,可以用雙引號(hào)隔開(kāi)那些 特定義的字符,這樣普通字符串中如果含特殊的字符就不會(huì)被顯示為 時(shí)間格式啦: FormatdateTime(today is c,now); 輸出為:today is 2004-8-7 10:26:58 時(shí)間中也可以加-或來(lái)分開(kāi)日期: FormatdateTime(today is y
13、y-mm-dd,now); FormatdateTime(today is yymmdd,now); 輸出為: today is 04-08-07 也可以用:來(lái)分開(kāi)時(shí)間 FormatdateTime(today is hh:nn:ss,now); 輸出為:today is 10:32:23 編輯本段三.FormatFloat的用法常用的聲明: function FormatFloat(const Format: string; Value: Extended): string; overload; 和上面一樣Format參數(shù)為格式化指令字符,Value為Extended類型 為什么是這個(gè)類型,
14、因?yàn)樗撬懈↑c(diǎn)值中表示范圍最大的,如果傳入該方法的參數(shù) 比如Double或者其他,則可以保存不會(huì)超出范圍。 關(guān)鍵是看Format參數(shù)的用法 0 這個(gè)指定相應(yīng)的位數(shù)的指令。 比如:FormatFloat(000.000,22.22); 輸出的就是022.220 注意一點(diǎn),如果整數(shù)部分的0的個(gè)數(shù)小于Value參數(shù)中整數(shù)的位數(shù),則沒(méi)有效果 如:FormatFloat(0.00,22.22); 輸出的是:22.22 但如果小數(shù)部分的0小于Value中小數(shù)的倍數(shù),則會(huì)截去相應(yīng)的小數(shù)和位數(shù) 如:FormatFloat(0.0,22.22); 輸出的是:22.2 也可以在整數(shù)0中指定逗號(hào),這個(gè)整數(shù)位數(shù)必須
15、大于3個(gè),才會(huì)有逗號(hào)出句 FormatFloat(0,000.0,2222.22); 輸出是:2,222.2 如果這樣FormatFloat(000,0.0,2222.22); 它的輸出還是:2,222.2 注意它的規(guī)律 # 和0的用法一樣,目前我還沒(méi)有測(cè)出有什么不同。 FormatFloat(#.#,22.22); 輸出是:22.00 E 科學(xué)表示法,看幾個(gè)例子大概就明白了 FormatFloat(0.00E+00,2222.22); 輸出是 2.22E+03 FormatFloat(0000.00E+00,2222.22); 輸出是 2222.22E+00 FormatFloat(00.0
16、E+0,2222.22); 22.2E+2 明白了嗎,全靠E右邊的0來(lái)支配的。 編輯本段vb中的format函數(shù)返回 Variant (String),其中含有一個(gè)表達(dá)式,它是根據(jù)格式表達(dá)式中的指令來(lái)格式化的。 語(yǔ)法 Format(expression, format, firstdayofweek, firstweekofyear) Format 函數(shù)的語(yǔ)法具有下面幾個(gè)部分在MFC程序中,使用CString來(lái)處理字符串是一個(gè)很不錯(cuò)的選擇。CString既可以處理Unicode標(biāo)準(zhǔn)的字符串,也可以處理ANSI標(biāo)準(zhǔn)的字符串。CString的Format方法給我們進(jìn)行字符串的轉(zhuǎn)換帶來(lái)了很大的方便,
17、比如常見(jiàn)的int、float和double這些數(shù)字類型轉(zhuǎn)換為CString字符串只需一行代碼就可以實(shí)現(xiàn)。先看看Format用于轉(zhuǎn)換的格式字符:%c 單個(gè)字符%d 十進(jìn)制整數(shù)(int)%ld 十進(jìn)制整數(shù)(long)%f 十進(jìn)制浮點(diǎn)數(shù)(float)%lf 十進(jìn)制浮點(diǎn)數(shù)(double)%o 八進(jìn)制數(shù)%s 字符串%u 無(wú)符號(hào)十進(jìn)制數(shù)%x 十六進(jìn)制數(shù)1、int轉(zhuǎn)換為CString:CString str;int number=15;/str=15str.Format(_T(%d),number);/str= 15(前面有兩個(gè)空格;4表示將占用4位,如果數(shù)字超過(guò)4位將輸出所有數(shù)字,不會(huì)截?cái)?str.For
18、mat(_T(%4d),number);/str=0015(.4表示將占用4位,如果數(shù)字超過(guò)4位將輸出所有數(shù)字,不會(huì)截?cái)?str.Format(_T(%.4d),number);long轉(zhuǎn)換為CString的方法與上面相似,只需要把%d改為%ld就可以了。2、double轉(zhuǎn)換為CString:CString str;double num=1.46;/str=1.46str.Format(_T(%lf),num);/str=1.5(.1表示小數(shù)點(diǎn)后留1位,小數(shù)點(diǎn)后超過(guò)1位則四舍五入)str.Format(_T(%.1lf),num);/str=1.4600str.Format(_T(%.4f),
19、num);/str= 1.4600(前面有1個(gè)空格)str.Format(_T(%7.4f),num);float轉(zhuǎn)換為CString的方法也同上面相似,將lf%改為f%就可以了。3、將十進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制:CString str;int num=255;/str=377str.Format(_T(%o),num);/str=00000377str.Format(_T(%.8o),num);Format是一個(gè)很常用,卻又似乎很煩的方法,以下是它的完整概貌,以供大家查詢之用:格式化字符串forma(%d,12)意思是將一個(gè)整形的格式化的字符(我認(rèn)為是保持其形狀不變)1).格式說(shuō)明總是以%字符開(kāi)始
20、,以下是不同類型數(shù)據(jù)的格式方式%號(hào)后的說(shuō)明:d輸出帶符號(hào)十進(jìn)制數(shù)o輸出無(wú)符號(hào)八進(jìn)制數(shù)x輸出無(wú)符號(hào)十六進(jìn)制數(shù)u輸出無(wú)符號(hào)數(shù)c輸出單個(gè)字符s輸出一串字符f輸出實(shí)數(shù)(6位小數(shù))e以指數(shù)形式輸出實(shí)數(shù)g選用f與e格式中輸出寬度較小的格式,不輸出0ld輸入輸出long型數(shù)據(jù)lf輸入輸出double型數(shù)據(jù)m數(shù)據(jù)輸出寬度為m.n輸出小數(shù)位數(shù)為n一、字符串首先看它的聲明:functionFormat(constFormat:string;constArgs:arrayofconst):string;overload;事實(shí)上Format方法有兩個(gè)種形式,另外一種是三個(gè)參數(shù)的,主要區(qū)別在于它是線程安全的,但并不多用
21、,所以這里只對(duì)第一個(gè)介紹:functionFormat(constFormat:string;constArgs:arrayofconst):string;overload;Format參數(shù)是一個(gè)格式字符串,用于格式化Args里面的值的。Args又是什么呢,它是一個(gè)變體數(shù)組,即它里面可以有多個(gè)參數(shù),而且每個(gè)參數(shù)可以不同。如以下例子:Format(mynameis%6s,wind);返回后就是mynameiswind現(xiàn)在來(lái)看Format參數(shù)的詳細(xì)情況:Format里面可以寫普通的字符串,比如mynameis但有些格式指令字符具有特殊意義,比如%6s格式指令具有以下的形式:%index:-widt
22、h.prectype它是以%開(kāi)始,而以type結(jié)束,type表示一個(gè)具體的類型。中間是用來(lái)格式化type類型的指令字符,是可選的。先來(lái)看看type,type可以是以下字符:d十制數(shù),表示一個(gè)整型值u和d一樣是整型值,但它是無(wú)符號(hào)的,而如果它對(duì)應(yīng)的值是負(fù)的,則返回時(shí)是一個(gè)2的32次方減去這個(gè)絕對(duì)值的數(shù)如:Format(thisis%u,-2);返回的是:thisis4294967294f對(duì)應(yīng)浮點(diǎn)數(shù)e科學(xué)表示法,對(duì)應(yīng)整型數(shù)和浮點(diǎn)數(shù),比如Format(thisis%e,-2.22);返回的是:thisis-2.220000E+000等一下再說(shuō)明如果將數(shù)的精度縮小g這個(gè)只能對(duì)應(yīng)浮點(diǎn)型,且它會(huì)將值中多余
23、的數(shù)去掉比如Format(thisis%g,02.200);返回的是:thisis2.2n只能對(duì)應(yīng)浮點(diǎn)型,將值轉(zhuǎn)化為號(hào)碼的形式。看一個(gè)例子就明白了Format(thisis%n,4552.2176);返回的是thisis4,552.22注意有兩點(diǎn),一是只表示到小數(shù)后兩位,等一下說(shuō)怎么消除這種情況二是,即使小數(shù)沒(méi)有被截?cái)啵膊粫?huì)也像整數(shù)部分一樣有逗號(hào)來(lái)分開(kāi)的m錢幣類型,但關(guān)于貨幣類型有更好的格式化方法,這里只是簡(jiǎn)單的格式化另外它只對(duì)應(yīng)于浮點(diǎn)值Format(thisis%m,9552.21);返回:thisis¥9,552.21p對(duì)應(yīng)于指針類型,返回的值是指針的地址,以十六進(jìn)制的形式來(lái)表示例如:
24、Format(thisis%p,p);Edit1的內(nèi)容是:thisis0012F548s對(duì)應(yīng)字符串類型,不用多說(shuō)了吧x必須是一個(gè)整形值,以十六進(jìn)制的形式返回Format(thisis%X,15);返回是:thisisF類型講述完畢,下面介紹格式化Type的指令:index:這個(gè)要怎么表達(dá)呢,看一個(gè)例子Format(thisis%d%d,12,13);其中第一個(gè)%d的索引是0,第二個(gè)%d是1,所以字符顯示的時(shí)候是這樣thisis1213而如果你這樣定義:Format(thisis%1:d%0:d,12,13);那么返回的字符串就變成了thisis1312現(xiàn)在明白了嗎,index:中的index指
25、示Args中參數(shù)顯示的順序還有一種情況,如果這樣Format(%d%d%d%0:d%d,1,2,3,4);將返回12312。如果你想返回的是12314,必須這樣定:Format(%d%d%d%0:d%3:d,1,2,3,4);但用的時(shí)候要注意,索引不能超出Args中的個(gè)數(shù),不然會(huì)引起異常如Format(thisis%2:d%0:d,12,13); /error由于Args中只有1213兩個(gè)數(shù),所以Index只能是0或1,這里為2就錯(cuò)了width指定將被格式化的值占的寬度,看一個(gè)例子就明白了Format(thisis%4d,12);輸出是:thisis12這個(gè)是比較容易,不過(guò)如果Width的值小
26、于參數(shù)的長(zhǎng)度,則沒(méi)有效果。如:Format(thisis%1d,12);輸出是:thisis12-這個(gè)指定參數(shù)向左齊,和width合在一起最可以看到效果:Format(thisis%-4d,yes,12);輸出是:thisis12,yes.prec指定精度,對(duì)于浮點(diǎn)數(shù)效果最佳:Format(thisis%.2f,1.1234);輸出thisis1.12Format(thisis%.7f,1.1234);輸了thisis1.1234000而對(duì)于整型數(shù),如果prec比如整型的位數(shù)小,則沒(méi)有效果反之比整形值的位數(shù)大,則會(huì)在整型值的前面以0補(bǔ)之Format(thisis%.7d,1234);輸出是:t
27、hisis0001234對(duì)于字符型,剛好和整型值相反,如果prec比字符串型的長(zhǎng)度大則沒(méi)有效果,反之比字符串型的長(zhǎng)度小,則會(huì)截?cái)辔膊康淖址鸉ormat(thisis%.2s,1234);輸出是thisis12而上面說(shuō)的這個(gè)例子:Format(thisis%e,-2.22);返回的是:thisis-2.22000000000000E+000怎么去掉多余的0呢,這個(gè)就行啦Format(thisis%.2e,-2.22);好了,第一個(gè)總算講完了,應(yīng)該對(duì)他的應(yīng)用很熟悉了吧m_result.Format(您選的城市是:/r/n%s,/r/n您選的人是:/r/n%s,city1+city2+city3,p
28、eople);UpdateData(0);格式小結(jié):(1)最常用的格式是%d,含義是以10進(jìn)制形式打印一個(gè)整數(shù)。如果輸出的整數(shù)是負(fù)數(shù),則,輸出的第一個(gè)字符就是-號(hào)(2)%u格式與%d格式類似,只不過(guò)要求打印無(wú)符號(hào)10進(jìn)制整數(shù)。(3)%o格式請(qǐng)求輸出8進(jìn)制整數(shù)(4)%x和%X格式請(qǐng)求輸出16進(jìn)制整數(shù)。%x格式中用小寫字母a,b,c,d,e,f來(lái)表示10到15之間的數(shù)%X格式中用大寫字母A,B,C,D,E,F來(lái)表示10到15之間的數(shù)共同點(diǎn):8進(jìn)制和16進(jìn)制整數(shù)總是作為無(wú)符號(hào)數(shù)處理的。(5)%s格式用于打印字符串,與之對(duì)應(yīng)的參數(shù)應(yīng)該是一個(gè)字符指針,待輸出的字符始于該指針?biāo)赶虻牡刂罚钡匠霈F(xiàn)一個(gè)空字
29、符(/0)才終止。(6)%c格式用于打印單個(gè)字符:例如:printf(%c,c);等價(jià)于putchar;(7)%g,%f和%e這三個(gè)格式用于打印浮點(diǎn)值。%g格式用于打印那些不需要按列對(duì)齊的浮點(diǎn)數(shù)特別有用。其作用有二:一,去掉該數(shù)尾多余的零(沒(méi)有達(dá)到六位的數(shù))二,保留六位有效數(shù)字(多余六位的)%e格式用于打印浮點(diǎn)數(shù)時(shí),一律顯示地使用指數(shù)形式:例如:輸出圓周率時(shí)是:3.141593e+00兩者的區(qū)別:%g格式打印出的數(shù)是總共6位有效數(shù)字%e格式打印出小數(shù)點(diǎn)后的6位有效數(shù)字%f禁止使用指數(shù)形式來(lái)表示浮點(diǎn)數(shù)。因此圓周率輸出為:3.141593(但注意它的精度要求:也是小數(shù)點(diǎn)后6位有效數(shù)字)(8)%格式
30、用于打印一個(gè)%字符。(9)%E和%G只是在輸出時(shí)用大寫字母(E)代替了小寫字母(e)另外需要注意的一些知識(shí)點(diǎn):對(duì)齊規(guī)則:(1)當(dāng)指定寬度大于要輸出位數(shù)時(shí),數(shù)右對(duì)齊,左端補(bǔ)空格當(dāng)前綴-號(hào)時(shí),想要數(shù)左對(duì)齊,右端補(bǔ)空格大大的前提:只有當(dāng)“指定寬度”存在時(shí),前綴-才有意義。經(jīng)驗(yàn):一般來(lái)說(shuō),左端對(duì)齊的形式看上去要美觀整齊一點(diǎn)。輸出正負(fù)號(hào)的技巧:(記住)例如:printf(%+d%+d%+d/n,-5,0,5);只要在中間加個(gè)“+”號(hào)就行。作用是輸出符號(hào)位(即,數(shù)的正負(fù)號(hào))如果不希望正數(shù)的前面出現(xiàn)+號(hào),可用下面的方法只要在中間加個(gè)“”號(hào)(即:空格)就行。(記住)例如:作用:如果一個(gè)數(shù)是非負(fù)數(shù),就在它的前面
31、插入一個(gè)空格。inti;for(i=-3;i=3;i+)printf(%d/n,i);/注意%和d之間有一個(gè)空格輸出結(jié)果如下:-3-2-10123問(wèn)題:如果+和同時(shí)出現(xiàn)在“中間”時(shí),要以+為準(zhǔn)。兩個(gè)符號(hào)的共同點(diǎn):用于對(duì)齊輸出的數(shù):(尤其對(duì)于小數(shù)來(lái)說(shuō))兩種格式:%+e和%eC語(yǔ)言中基本的輸入輸出函數(shù)有:putchar():把變量中的一個(gè)字符常量輸出到顯示器屏幕上;getchar();從鍵盤上輸入一個(gè)字符常量,此常量就是該函數(shù)的值;printf();把鍵盤中的各類數(shù)據(jù),加以格式控制輸出到顯示器屏幕上;scanf();從鍵盤上輸入各類數(shù)據(jù),并存放到程序變量中;puts():把數(shù)組變量中的一個(gè)字符串常
32、量輸出到顯示器屏幕上;gets():從鍵盤上輸入一個(gè)字符串常量并放到程序的數(shù)組中.sscanf();從一個(gè)字符串中提取各類數(shù)據(jù)。putchar()和getchar()顧名思議就是從輸入流中獲取一個(gè)字符和輸出一個(gè)字符,比較簡(jiǎn)單,不再多講。例子如下:charc=getchar();putchar;格式化輸入輸出scanf()和printf()是最有用的,所以重點(diǎn)講一下。printf():一般形式:printf(格式控制.輸出列表);eg:printf(a=%d,b=%f,c=%c/n,a,b,c);1;格式控制.格式控制是用雙引號(hào)括起來(lái)的字符串,也稱轉(zhuǎn)換控制字符串,它包含以下兩部分信息.格式說(shuō)明:
33、由%和格式字符組成,如%d,%f,%c,他的作用是把輸出數(shù)據(jù)轉(zhuǎn)換為指定格式輸出,格式的說(shuō)明總是由%字符開(kāi)始的.普通字符:需要原樣輸出的字符,或者是一些有特殊含義的字符,如/n,/t。2;輸出列表就是需要輸出的一些數(shù)據(jù),也可以是表達(dá)式,如果在函數(shù)中需要輸出多個(gè)變量或表達(dá)式,則要用逗號(hào)隔開(kāi).一些特殊字符的輸出:?jiǎn)我?hào),雙引號(hào),和反斜杠的輸出在前面加轉(zhuǎn)義字符”/”如:”/”,“/”,“/”%的輸出用兩個(gè)連在一起的%,即printf(“%”);常用的格式說(shuō)明如下:格式字符d以十進(jìn)制形式輸出帶符號(hào)整數(shù)(正數(shù)不輸出符號(hào))o以八進(jìn)制形式輸出無(wú)符號(hào)整數(shù)(不輸出前綴O)x以十六進(jìn)制形式輸出無(wú)符號(hào)整數(shù)(不輸出前綴
34、OX)u以十進(jìn)制形式輸出無(wú)符號(hào)整數(shù)f以小數(shù)形式輸出單精度實(shí)數(shù)lf以小數(shù)形式輸出雙精度實(shí)數(shù)e以指數(shù)形式輸出單、雙精度實(shí)數(shù)g以%f%e中較短的輸出寬度輸出單、雙精度實(shí)數(shù)c輸出單個(gè)字符s輸出字符串這里強(qiáng)調(diào)一下:網(wǎng)上很多文章都說(shuō)f和lf是一樣的,即不管單精度,雙精度浮點(diǎn)數(shù),都可以用f,但我在POJ上做過(guò)測(cè)試,輸出Double時(shí)用f確實(shí)也可以,但讀入時(shí),用f就報(bào)WA,所以大家如果對(duì)Double進(jìn)行讀寫的話,都用lf吧。說(shuō)到Double,再啰嗦一句,建議大家要用到浮點(diǎn)數(shù)時(shí)都用Double,不要用float,因?yàn)樵诤芏嗲闆r下,float精度不夠會(huì)導(dǎo)致WA。特殊:對(duì)64位整數(shù)的輸入輸出,在POJ上的C+環(huán)境下
35、(即VC),64位整數(shù)是:_int64(注意int前面是兩個(gè)下劃線)輸入輸出格式為”%I64d”.在G+環(huán)境下(即DevC+)64位整數(shù)是longlong輸入輸出格式為”%lld”.輸出寬度用十進(jìn)制整數(shù)來(lái)表示輸出的最少位數(shù)。注意若實(shí)際位數(shù)多于定義的寬度,則按實(shí)際位數(shù)輸出,若實(shí)際位數(shù)少于定義的寬度則補(bǔ)以空格或0。精度精度格式符以“.”開(kāi)頭,后跟十進(jìn)制整數(shù)。意義是:如果輸出數(shù)字,則表示小數(shù)的位數(shù);如果輸出的是字符,則表示輸出字符的個(gè)數(shù);若實(shí)際位數(shù)大于所定義的精度數(shù),則截去超過(guò)的部分。標(biāo)志格式字符-結(jié)果左對(duì)齊,右邊填空格+輸出符號(hào)(正號(hào)或負(fù)號(hào))空格輸出值為正時(shí)冠以空格,為負(fù)時(shí)冠以負(fù)號(hào)例如:doublec=24212345.24232;printf(“%020.4”);表示輸出精確到小數(shù)點(diǎn)后4位,輸出占20位,若有空余的位補(bǔ)0.scanf:scanf的很多用法都是和printf對(duì)應(yīng)的,故不再贅述。說(shuō)一下scanf一個(gè)特別好用的地方,就是
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 商品贈(zèng)品協(xié)議書范本
- 中小學(xué)學(xué)校數(shù)字化建設(shè)方案
- 正規(guī)銷售工裝合同協(xié)議
- 商務(wù)樓宇建合同協(xié)議
- 品牌特賣合同協(xié)議
- 2025有關(guān)標(biāo)準(zhǔn)辦公樓租賃合同范本
- 2025建筑工程分包合同
- 《激光雷達(dá)技術(shù)概述》課件
- 專利咨詢服務(wù)協(xié)議
- 2025年即將實(shí)施的土地承包合同政策
- 新型建筑材料在高層建筑中的應(yīng)用,建筑材料論文
- GB/T 19073-2008風(fēng)力發(fā)電機(jī)組齒輪箱
- HAY-勝任素質(zhì)模型構(gòu)建與應(yīng)用完整版
- 醫(yī)院硬式內(nèi)鏡清洗消毒技術(shù)規(guī)范(2019年版)
- 最新安全生產(chǎn)管理教材電子版
- (完整版)耳鼻喉科操作規(guī)程
- 精選芭蕾舞男女演員之間的潛規(guī)則匯總
- fevr的治療進(jìn)展專題知識(shí)講座
- 《中華傳統(tǒng)文化》第11課戲曲-教學(xué)教案
- 實(shí)驗(yàn)室氣瓶使用記錄
- 機(jī)械基礎(chǔ)章節(jié)練習(xí)題集題庫(kù)帶答案
評(píng)論
0/150
提交評(píng)論