• 【C++】【转】MFC中CString.Format的用法


      在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="00000377"

      str.Format(_T("%.8o"),num);

      Format是一个很常用,却又似乎很烦的方法,以下是它的完整概貌,以供大家查询之用:  

      格式化字符串forma("%d",12)意思是将一个整形的格式化的字符(我认为是保持其形状不变
      1).
    格式说明总是以%字符开始,以下是不同类型数据的格式方式%号后的说明
        d
    输出带符号十进制数 
        o
    输出无符号八进制数 
        x
    输出无符号十六进制数 
        u
    输出无符号数 
        c
    输出单个字符 
        s
    输出一串字符 
        f
    输出实数(6位小数) 
        e
    以指数形式输出实数 
        g
    选用fe格式中输出宽度较小的格式,不输出
        ld
    输入输出long型数据 
        lf
    输入输出double型数据 
        m
    数据输出宽度为
        .n
    输出小数位数为


     

     

     

     

     

     

  • 相关阅读:
    检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败的解决方案--报错80080005
    c# 数组拼接、DataTable拼接
    【C#】数据类型(sbyte,byte,short,ushort,int,uint,long,ulong和char。、、、)
    一个字符占几个字节
    js获取不到scrollTop值的问题
    省市县2020年最新更新
    【警惕流文件转string存数据库操作】记一次数据库异常增长的排查经历
    【VS Code】利用Live Server插件搭建本地服务
    数据库中float类型存储时位数增多问题
    【小工具】阿里云视频上传工具
  • 原文地址:https://www.cnblogs.com/kongtiao/p/2548033.html
Copyright © 2020-2023  润新知