一、包含
#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 str;
#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>
CString str;
str.Format( "%d-%d-%d, %d:%d:%d", year, month, day, hour, minute, second );