第一篇:CString的Format方法使用技巧小結(jié)(大全)
CString的Format方法使用技巧小結(jié)
在VC中經(jīng)常用到Format()來輸出一個特定類型的變量到窗口上,該函數(shù)使用起來比較方便,但是如果對其函數(shù)中的參數(shù)不很熟悉的話用起來也是比較麻煩的。因此,歸納了一下,以供大家查詢之用:
1).格式說明
格式說明總是以%字符開始,以不同類型數(shù)據(jù)的格式方式%號: %d輸出帶符號十進(jìn)制數(shù) %o輸出無符號八進(jìn)制數(shù) %x輸出無符號十六進(jìn)制數(shù) %u輸出無符號數(shù) %c輸出單個字符 %s輸出一串字符 %f輸出實(shí)數(shù)(6位小數(shù))%e以指數(shù)形式輸出實(shí)數(shù)
%g選用f與e格式中輸出寬度較小的格式,不輸出0 %ld輸入輸出long型數(shù)據(jù)
%lf輸入輸出double型數(shù)據(jù)
m.n中,m為數(shù)據(jù)輸出寬度,n為輸出小數(shù)位數(shù)
比如常見的int、float和double這些數(shù)字類型轉(zhuǎn)換為CString字符串只需一行代碼就可以實(shí)現(xiàn)。
1、int轉(zhuǎn)換為CString:
CString str;int number=15;//str=“15” str.Format(_T(“%d”),number);//str=“ 15”(前面有兩個空格;4表示將占用4位,如果數(shù)字超過4位將輸出所有數(shù)字,不會截斷)str.Format(_T(“%4d”),number);//str=“0015”(.4表示將占用4位,如果數(shù)字超過4位將輸出所有數(shù)字,不會截斷)str.Format(_T(“%.4d”),number);
long轉(zhuǎn)換為CString的方法與上面相似,只需要把%d改為%ld就可以了。
2、double轉(zhuǎn)換為CString:
CString str;double num=1.46;//str=“1.46” str.Format(_T(“%lf”),num);//str=“1.5”(.1表示小數(shù)點(diǎn)后留1位,小數(shù)點(diǎn)后超過1位則四舍五入)str.Format(_T(“%.1lf”),num);//str=“1.4600” str.Format(_T(“%.4f”),num);//str=“ 1.4600”(前面有1個空格)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=“377” str.Format(_T(“%o”),num);//str=“00000377” str.Format(_T(“%.8o”),num);
4、double轉(zhuǎn)換為CString補(bǔ)充:也可以使用下面的函數(shù)去轉(zhuǎn)換,位數(shù)控制比較簡單。在使用時需要包含#include “COMDEF.H”頭文件。
void FormatDouble(double dblValue,CString& sOut){
_variant_t var(dblValue);
BSTR bstrOut = sOut.AllocSysString();
::VarFormat(&var, L“0.######”, 0, 0, VAR_FORMAT_NOSUBSTITUTE, &bstrOut);
sOut = bstrOut;
::SysFreeString(bstrOut);}
一 Cstring
1.初始化方法:
(1)直接復(fù)制,如Cstring=”mingrisoft”;
(2)通過構(gòu)造函數(shù)初始化,如
CString str(‘ ’,100)//與分配100個字節(jié),填充空格
char* p=”feiqiang”;Cstring(p);delete p.(3)加載工程中的字符串資源,如CString str;str.LoadString(IDS_STR);
(4)使用CString類的成員函數(shù)Format初始化,如CString str;int i=0;str.Format(“value:%d”,i);
2.將CString轉(zhuǎn)化為char*,如
CString str=”feqiang”;
char *p;
p=str.GetBuffer();
delete p;
將char*轉(zhuǎn)化為CString,如:
char* p=”feiqiang”;
p[len(p)]=?