-
CString::Format基本介绍
void Format( LPCTSTR lpszFormat, ... );
void Format( UINT nFormatID, ... );
参数:
| lpszFormat | 一个格式控制字符串。 |
| nFormatID | 包含格式控制字符串的字符串资源标识符。 |
此成员函数用来将格式化数据写入一个CString中,其方法就像sprintf函数向一个C-风格的字符数组中格式化输出数据一样。这个成员函数在CString中格式化并存储一系列字符和值。根据lpszFormat中指定的格式或nFormatID标识的字符串资源,函数中的每一个可选参数(如果有)都被转换并输出。
%d输出带符号十进制数
%o输出无符号八进制数
%x输出无符号十六进制数
%u输出无符号数
%c输出单个字符
%s输出一串字符
%f输出实数(6位小数)
%e以指数形式输出实数
%g选用f与e格式中输出宽度较小的格式,不输出0
%ld输入输出long型数据
%lf输入输出double型数据
%m数据输出宽度为m
%.n输出小数位数为n
格式指令具有以下的形式:
"%" [index ":"] ["-"] [width] ["." prec] type
CString::format常用转换如下:
CString str;
1.int转换为CString
int a=15;
str.format("%d",a);
可加入各种补充说明及符号
str.Format("%d(输出长度为%s)",len, temp);
%d前面的4表示将占用4位,如果数字超过4位将输出所有数字,不会截断)
str.Format(_T("%4d"),a);
//str="0015"
2.double转换为CString:
double num=1.46;
str.Format(_T("%.1lf"),num);
//str="1.5"(.1表示小数点后留1位,小数点后超过1位则四舍五入)
str.Format(_T("%.4f"),num);
//str="1.4600"
2.char[]数组和CString转化为CString
char a[128]="MFC";
str.format("%s",a);
3.long转化为CString
strTemp.Format("%ld", (long)wTemp);
CString注意事项
1.对齐
指定宽度大于要输出位数时,数右对齐,左端补空格
strTemp.Format("%-14d",stationBlock.sharedLdtsId);
前提:只有当“指定宽度”存在时,前缀'-'才有意义
2.输出正负号
输出符号位(即,数的正负号)
strTemp.Format("%+d",stationBlock.sharedLdtsId);
只要在中间加个“+”号就行 %+d
3.只输出负号 不输出正号
只要在中间加个“ ”号(即:空格)就行。
作用:如果一个数是非负数,就在它的前面插入一个空格,负数输出符号“-”。
本文详细介绍了MFC的CString::Format方法,包括%d、%o、%x等格式指令的用法,以及如何转换int、double、char[]和long到CString。还提到了格式设置如对齐、符号显示的注意事项。
3220

被折叠的 条评论
为什么被折叠?



