MFC中CString.Format的详细用法.docVIP

  • 8
  • 0
  • 约2.23万字
  • 约 7页
  • 2016-11-27 发布于河南
  • 举报
MFC中CString.Format的详细用法

MFC中CString.Format的详细用法 2010-12-12 15:31 在MFC程序中,使用CString来处理字符串是一个很不错的选择。CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串。CString的Format方法给我们进行字符串的转换带来了很大的方便,比如常见的int、float和double这些数字类型转换为CString字符串只需一行代码就可以实现。   先看看Format用于转换的格式字符:   %c???????????????? 单个字符   %d???????????????? 十进制整数(int)   %ld??????????????? 十进制整数(long)   %f???????????????? 十进制浮点数(float)   %lf??????????????? 十进制浮点数(double)   %o???????????????? 八进制数   %s???????????????? 字符串   %u???????????????? 无符号十进制数   %x???????????????? 十六进制数   1、int转换为CString:   CString str;   int number=15;   //str=15   str.Format(_T(%d),number);   //str= 15(前面有两个空格;4表示将占用4位,如果数字超过4位将输出所有数字,不会截断)   str.Format(_T(%4d),number);   //str=0015(.4表示将占用4位,如果数字超过4位将输出所有数字,不会截断)   str.Format(_T(%.4d),number);   long转换为CString的方法与上面相似,只需要把%d改为%ld就可以了。   2、double转换为CString:   CString str;   double num=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  str.Format(_T(%.8o),num); Format是一个很常用,却又似乎很烦的方法,以下是它的完整概貌,以供大家查询之用:?? 格式化字符串forma(%d,12)意思是将一个整形的格式化的字符(我认为是保持其形状不变)? 1).格式说明总是以%字符开始,以下是不同类型数据的格式方式%号后的说明:? d输出带符号十进制数? o输出无符号八进制数? x输出无符号十六进制数? u输出无符号数? c输出单个字符? s输出一串字符? f输出实数(6位小数)? e以指数形式输出实数? g选用f与e格式中输出宽度较小的格式,不输出0? ld输入输出long型数据? lf输入输出double型数据? m数据输出宽度为m? .n输出小数位数为n? 一、字符串? 首先看它的声明:?? function?Format(const?Format:?string;?const?Args:?array?of?const):?string;?overload;?? 事实上Format方法有两个种形式,另外一种是三个参数的,主要区别在于它是线程安全的,?? 但并不多用,所以这里只对第一个介绍:?? function?Format(const?Format:?string;?const?Args:?array?of?const):?string;?overload;?? Format参数是一个格式字符串,用于格式化Args里面的值的。Args又是什么呢,?? 它是一个变体数组,即它里面可以有多个参数,而且每个参数可以不同。?? 如以下例子:?? Format(my?name?is?%6s,wind);?? 返回后就是?? my?name?is?wind?? 现在来看Format参数的详细情况:?? Format里面可以写普通的字符串,比如my?name?is?? 但有些格式指令字符具有特殊意义

文档评论(0)

1亿VIP精品文档

相关文档