原文地址:CString Format函数 (VS2008)
作者:阳光雨露
一、Format方法格式化字符
CString str;
str.Format(_T("格式控制字符串"),输出内容);
格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以"%"开头的字符串,在"%"后面跟各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如"%d"表示按十进制整型输出,"%ld"表示按十进制长整形输出,"%c"表示按字符型输出等。非格式字符串在输出时保持原样,在显示中起提示作用。
格式字符串的一般形式为:
[标志][输出最小宽度][.精度][长度]转换说明符
其中[]中的项为可选项
转换说明符:
c:
输出单个字符,参数为该字符的ASCII码
d,i:
以十进制形式输出带符号整数(正数不输出符号)
e,E:
以指数形式输出单、双精度实数,默认为6位小数
f:
以小数形式输出单、双精度实数,默认为6位小数
s:
输出字符串,参数为char指针,显示空字符之前的所有字符或指定数目的数字
u:
以十进制形式输出无符号整数
长度:长度格式符共分为h和l两种,h表示按短整型量输出,l表示按长整型量输出。一般很少用到。
精度:精度格式符以"."开头,后跟十进制整数。其含义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。
输出最小宽度:用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。
标志:常用的标识符为'-'和'+'。'-'表示结果左对齐,右边填空格;'+'表示结果右对齐,对于有符号数,在其左边加上'+'或'-'。
二、CString类型字符串转换为其他类型
(1)转换为数值型
--atoi
如:CString str("352");
int iTemp=atoi(str);
--atof
如:CString s;
s="12345.6789";
float f=(float)atof((char*)(LPCTSTR)s);
(2)转换为char*类型
*使用GetBuffer函数
如:char *p;
CString str="Good Morning";
p=str.GetBuffer(str.GetLength());
*使用memcpy函数
如:CString str("Good Morning ");
char mch[20];
memcpy(mch,str,str.GetLength());
*使用LPCTSTR强制类型转换
如:char *ch;
CString str("Good Morning ");
ch=(LPSTR)(LPCTSTR)str;
char*类型的数据可以直接赋值给CString对象。
CString str;
str.Format(_T("格式控制字符串"),输出内容);
格式字符串的一般形式为:
[标志][输出最小宽度][.精度][长度]转换说明符
转换说明符:
长度:长度格式符共分为h和l两种,h表示按短整型量输出,l表示按长整型量输出。一般很少用到。
精度:精度格式符以"."开头,后跟十进制整数。其含义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。
输出最小宽度:用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。
标志:常用的标识符为'-'和'+'。'-'表示结果左对齐,右边填空格;'+'表示结果右对齐,对于有符号数,在其左边加上'+'或'-'。
二、CString类型字符串转换为其他类型
(1)转换为数值型
(2)转换为char*类型