浅尝boost之format.
浅尝boost之format
http://www.cnblogs.com/wuerping/archive/2005/04/21/142308.html 概述
std::string是个很不错的东东,但实际使用时基本在每个程序里都会遇到不愉快的事情:格式化字符串。我
甚至由于这个原因在代码里引入平台有关的MFC,ATL等本来不需要在项目中使用的一些重量级的框架,就为了能轻松的做格式化字符串 :-)
。曾尝试过将ATL::CString的format函数提取出来使用,但ATL::CString的底层调用了windows独有函数,无法跨越平台。
当然,现在有了boost::format,我们不用再担心了。boost::format重载了'%'操作符,通过多次调用'%'操作符就能将参数非常
方便格式化成字符串,并实现了ATL::CString和C#中的string两者的格式化字符串功能。除了语法刚开始感觉到怪异,功能足以让人感觉到兴
奋!
一、boost::format工作的方式
基本的语法,boost::format( format-string ) % arg1 % arg2 % ... % argN
下面的例子说明boost::format简单的工作方式

















二、boost::format实际使用的实例
格式化语法: [ N$ ] [ flags ] [ width ] [ . precision ] type-char






































三、boost::format新的格式说明符
%{nt}
当n是正数时,插入n个绝对制表符
cout << boost::format("[%10t]") << endl;
%{nTX}
使用X做为填充字符代替当前流的填充字符(一般缺省是一个空格)
cout << boost::format("[%10T*]") << endl;
四、异常处理
一般写法:












boost::format的文档中有选择处理异常的办法,不过个人感觉实用性可能不强,下面是文档中的例子












五、还有其它一些功能,但暂时感觉派不上用处,就不去深究了。
- 上一篇 香港买衣服
- 下一篇 C++笔记(1)explicit构造函数.