您的位置:首页 > 其它

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

2013-02-20 16:17 253 查看
=============================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====================
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: