CString 的Format 方法使用技巧小结 在VC 中经常用到Format()来输出一个特定类型的变量到窗口上,该函数使用起来比较方便,但是如果对其函数中的参数不很熟悉的话用起来也是比较麻烦的。因此,归纳了一下,以供大家查询之用: 1).格式说明 格式说明总是以%字符开始,以不同类型数据的格式方式%号: %d 输出带符号十进制数 %o 输出无符号八进制数 %x 输出无符号十六进制数 %u 输出无符号数 %c 输出单个字符 %s 输出一串字符 %f 输出实数(6 位小数) %e 以指数形式输出实数 %g 选用f 与e 格式中输出宽度较小的格式,不输出0 %ld 输入输出long 型数据 %lf 输入输出dou ble 型数据 m.n 中,m 为数据输出宽度,n 为输出小数位数 比如常见的int、float 和 dou ble 这些数字类型转换为CString 字符串只需一行代码就可以实现。 1、int 转换为CString: CString str; int nu mber=15; //str="15" str.Format(_T("%d"),nu mber); //str=" 15"(前面有两个空格;4 表示将占用4 位,如果数字超过 4 位将输出所有数字,不会截断) str.Format(_T("%4d"),nu mber); //str="0015"(.4 表示将占用4 位,如果数字超过 4 位将输出所有数字,不会截断) str.Format(_T("%.4d"),nu mber); long 转换为CString 的方法与上面相似,只需要把%d 改为%ld 就可以了。 2、dou ble 转换为CString: CString str; dou ble nu m=1.46; //str="1.46" str.Format(_T("%lf"),num); //str="1.5"(.1 表示小数点后留1 位,小数点后超过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 转换为CString 的方法也同上面相似,将lf%改为f%就可以了。 3、将十进制数转换为八进制: CString str; int num=255; //str="377" str.Format(_T("%o"),num); //str="00000377" str.Format(_T("%.8o"),num); 4、double 转换为CString 补充:也可以使用下面的函数去转换,位数控制比较简单。在使用时需要包含#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); sO...