BOOST库 之 format输出流

来源:互联网 发布:成都程序员工资水平 编辑:程序博客网 时间:2024/06/06 04:05
一、包含
#include <boost/format.hpp>
using namespace boost;


二、格式化语法
每个格式化选项以%开始,后面是格式规则,规定了输出的对齐、宽度、精度、字符类型.
%05d   : 输出宽度为5的整数,不足位用0填充;
%-8.3f : 输出左对齐,总宽度为8,小数位3位的浮点数;
% 10s  : 输出10位的字符串,不足位用空格填充;
%05X   :输出宽度为5的大写16进制整数,不足位用0填充.


例1:
boost::format form( "%05d\n %-8.3f\n % 10s\n %05X\n" );
std::cout << form %62 %2.236 %"123456789" %48;

输出结果
00062
2.236
123456789
00030

例2:
std::cout << boost::format( "%s: %d + %d = %d\n" ) %"sum" %1 %2 %(1+2);

三、新格式
%|spec| : 与printf格式选项功能相同,但两边增加了竖线分隔,可以更好的区分格式化选项与普通字符
%N%     : 标记第N个参数,相当于占位符,不带任何其他的格式化选项


boost::format form( "%|05d|\n %|-8.3f|\n %| 10s|\n %|05X|\n" );


例3:
boost::format fmt( "%1% + %2%" );
fmt %2 %5;
std::string str = fmt.str();


四、扩展

使用CString包含#include <atlstr.h>


int year = 2017, month = 7, day = 30, hour = 12, minute = 30, second = 00;
CString str;

str.Format( "%d-%d-%d, %d:%d:%d", year, month, day, hour, minute, second );


原创粉丝点击