C++如何格式化字符串,超简单实现C++格式化字符串功能
在C++中使用格式化字符串,真是头疼。似乎都没有找到合适的方法。想想C语言的格式化,很好用。用MFC的,CString非常方便。然而一直以来,使用C++来做这个,都一次次的放弃了。有人建议使用Boost。不过,没学过Boost的,不是也很汗颜吗?
#include <sstream>
using namespace std;
void myfun(string str)
{
cout<<str;
}
void main()
{
int i=100;
ostringstream ostr;
ostr << "i的值是:" << i<<",谢谢。";
string str = ostr.str();
myfun(str);
}
我们定义了一个函数myfun,然后输出str这个字符串。但是你想将i的值格式化后在输出,所以要先格式化字符串。我们创建了string输出流对象ostr,然后使用重载的<<操作符将需要输出的东西输出到对象ostr对象中,然后就可以调用ostr的成员函数str()将格式化好的字符串返回给str就行了。这样C++的格式化字符串,比起C语言的或者MFC的,更加灵活,你不用管类型格式化符,<<直接搞定。使用都和cout一样简单。只是大家很少接触ostringstream而已,以为不能格式化字符串一样,其实用起来很爽了。
当前文章为会员文章,请前往[用户中心]开通会员后继续阅读。