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====================


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM