随笔 - 833  文章 - 1  评论 - 106  阅读 - 200万

CString、std::string格式化字符串

=============================CString==================================

 当有多个字串时,比如  
  int   n1   =   5;  
  int   n2   =   10;  
  char   sz1[]   =   "abcdefg";  
  char   sz2[]   =   "hijklmn";  
   
  用std中的string如何写出最简单的代码得到MFC中CString如下效果:  
   
  CString   s;  
  s.Format("   result:   %d   +   %d   =   %d/n   sz1:   %s/n   sz2:   %s/n",   n1,   n2,   n1+n2,   sz1,   sz2   );  

===========================std::string==================================

int   n1   =   5;   
int   n2   =   10;   
char   sz1[]   =   "abcdefg";   
char   sz2[]   =   "hijklmn";          
          std::ostringstream   ostr;   //   include   <sstream>  
          ostr   <<   "result:"   <<   n1   <<   "+"   <<   n2   <<   "="   <<   n1+n2    
                    <<   "/nsz1:"   <<   sz1  
                    <<   "/nsz2:"   <<   sz2;  
          //std::cout   <<   ostr.str().c_str()   <<   std::endl;

std::string s = ostr.str();

 

 

附加说明

在C++有两种  
  一个是在<sstream>另一个是<strstream>它们实现的东西基本一样,   区别是前者为前标准.  
  而前标准里ostringstream::str()是返回std::string的.  
   
  <strstream>包含  
    class   strstreambuf;  
    class   istrstream;  
    class   ostrstream;  
    class   strstream;  
  它们是基于char*编写的  
   
  <sstream>  
  class   istringstream;  
  class   ostreamstream;  
  class   stringbuf;  
  class   stringstream;  
  class   ...  
  ....  
  它们是基于std::string编写的.  

 

===============char * 有sprintf====================

posted on   3D入魔  阅读(13610)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2013年2月 >
27 28 29 30 31 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 1 2
3 4 5 6 7 8 9

点击右上角即可分享
微信分享提示