博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++的字符串格式化库
阅读量:6626 次
发布时间:2019-06-25

本文共 1266 字,大约阅读时间需要 4 分钟。

这里向大家介绍一个C++的字符串格式化库,叫cpptempl,这个库支持对字符串格式的条件,循环,变量插入。看上去很不错,只不过其是基于boost库的。

下面是一个例子:

1
2
3
4
5
6
7
8
// The text template
wstring text = L
"I heart {$place}!"
;
// Data to feed the template engine
cpptempl::data_map data ;
// {$place} => Okinawa
data[L
"place"
] = cpptempl::make_data(L
"Okinawa"
);
// parse the template with the supplied data dictionary
wstring result = cpptempl::parse(text, data) ;

输出结果是:

I heart Okinawa!

是不是很方便?让我们看一个更复杂的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// You'd probably load this template from a file in real life.
wstring text = L
"<h3>Locations</h3>\n<ul>\n"
    
L
"{% for place in places %}"
    
L
"<li>{$place}</li>\n"
    
L
"{% endfor %}"
    
L
"</ul>"
;
// Create the list of items
cpptempl::data_list places;
places.push_back(cpptempl::make_data(L
"Okinawa"
));
places.push_back(cpptempl::make_data(L
"San Francisco"
));
// Now set this in the data map
cpptempl::data_map data ;
data[L
"places"
] = cpptempl::make_data(places);
// parse the template with the supplied data dictionary
wstring result = cpptempl::parse(text, data) ;

输出结果是:

<h3>Locations</h3>

<ul>
<li>Okinawa</li>
<li>San Francisco</li>
</ul>

更为详细的说明请到这里:。

Google也有一个类似的库叫ctemplate: 提供相似的方法,你也可以试试看。与Google相对应的Java库叫Hapax:。

转载于:https://www.cnblogs.com/alantu2018/p/8503727.html

你可能感兴趣的文章
linux系统管理之九:rpm安装包
查看>>
Linux系统中查看日志的常用命令
查看>>
java基础(二) 自增自减与贪心规则
查看>>
VMWare View的组件
查看>>
Oracle GoldenGate学习之--异构平台同步(Mysql到Oracle)
查看>>
Linux下date命令使用举例说明
查看>>
Centos6下SVN服务器(结合Apache)的搭建
查看>>
Reactor和Proactor模式
查看>>
实验:关于XPath中的13个轴
查看>>
品牌的网闸介绍
查看>>
手势滑动源码(适合新手)
查看>>
我的友情链接
查看>>
快速熟悉开源项目
查看>>
Linux Centos 6.2 装好PHP启动Apache错误libmysqlclient.so.18:
查看>>
我的开发工具包
查看>>
运维角度浅谈MySQL数据库优化
查看>>
多版本python下,安装pip
查看>>
AndroidManifest.xml文件解析
查看>>
互联网 免费的WebService接口
查看>>
【我的V日志】2010年1月29日星期五
查看>>