C++的字符串格式化库
这里向大家介绍一个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>
更为详细的说明请到这里:http://bitbucket.org/ginstrom/cpptemplate/wiki/Home。
Google也有一个类似的库叫ctemplate:http://code.google.com/p/google-ctemplate/ 提供相似的方法,你也可以试试看。与Google相对应的Java库叫Hapax:http://code.google.com/p/hapax/。
C++的字符串格式化库的更多相关文章
- C++字符串格式化库:CPPFormatLibrary
这个是很久之前写的,去年总结了一下,将其单独提取出来,作为一个开源库放到了GitHub上,然而CPPFormat之类的名字都已经被抢注了,结果只好注册了一个这么蛋疼的名字:CPPFormatLibra ...
- boost::format(字符串格式化库)
这段时间学习boost库的使用,撰文一方面留以备用,另一方面就是shared精神. format主要是用来格式化std::string字符串以及配合std::cout代替C语言printf() 使用f ...
- (二)boost库之字符串格式化
(二)boost库之字符串格式化 程序中经常需要用到字符串格式化,就个人而言还是比较倾向于C格式的输出,如果只是打印日志,printf就够了,如果到生成字符串,获取你可以选择sprintf,但这些都是 ...
- Lua 中的string库(字符串函数库)总结
(字符串函数库)总结 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014-11-20我要评论 这篇文章主要介绍了Lua中的string库(字符串函数库)总结,本文讲解了string库 ...
- Python系列之模块、和字符串格式化
Python 模块 模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用. 模块分为 ...
- sscanf的字符串格式化用法
sscanf()为C语言标准库函数,用于从指定字符串中读入与指定格式相符的数据.函数原型声明在stdio.h头文件中: int sscanf(const char *str, const char * ...
- python笔记3-输出输入、字符串格式化
输入.输出 python怎么来接收用户输入呢,使用input函数,python2中使用raw_input,接收的是一个字符串,输出呢,第一个程序已经写的使用print,代码入下: 1 2 name=i ...
- Haskell语言学习笔记(86)字符串格式化与插值
String 的格式化 Text.Printf 这个模块用来处理字符串格式化. printf :: PrintfType r => String -> r printf 用于格式化字符串, ...
- string.Format对C#字符串格式化[转]
string.Format对C#字符串格式化 String.Format 方法的几种定义: String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 ...
随机推荐
- 【树莓派】crontab设置Linux设备定时重启
简介:设置Linux设备定时重启或者关机 问题:有台设备每天总需要使用的人手动重启一下才可以正常工作,但是检查了日志,看起来服务一切都正常.时间和正确时间相差4mins. 解决办法: 1.增加定时任务 ...
- 【树莓派】服务配置相关2:基于RPi Desktop的服务配置
该文接续之前写过的一篇:[树莓派]服务配置相关. 这是我个人用来进行树莓派盒子安装配置的脚本,对于外部其他博友,可以部分参考,但不需要逐个引用. 现在有一定更新,部分按如下脚本来操作: step1: ...
- All you should know about NUMA in VMware!
http://www.elasticvision.info/ All you should know about NUMA in VMware! Lets try answering some typ ...
- React (native) 相关知识
container component provider组件 react里的redux进阶玩法 react组件的生命周期 conductor / componentWillMount / render ...
- Executor并发框架--线程池,ThreadToolExecutor初步
Executor存在的目的是提供一种将"任务提交"与"任务如何运行"分离开来的机制.虽然只有一个方法,但是却为灵活且强大的异步任务执行框架提供了基础.它提供了一 ...
- dpkg 小记
dpkg 安装 dpkg -i to-be-install.deb dpkg 删除 dpkg -r name-of-app dpkg -l 查看有哪些包被安装.其中 ii 标记的包是正常的, rc 标 ...
- ES6学习笔记五:Promise异步任务
一:Promise对象 Promise对象代表一个异步操作,有三种状态:Pending(进行中).Resolved(已完成,又称 Fulfilled)和Rejected(已失败). 二:创建与使用 v ...
- Linux c —— opendir函数和readdir函数内涵及用法(转)
opendir函数 头文件:#include <sys/types.h> #include <dirent.h> 函数:DIR *opendir(const char *na ...
- python 模块之os.path模块
# -*- coding: cp936 -*- #python 27 #xiaodeng #python 模块之os.path模块 #http://www.cnblogs.com/dkblog/arc ...
- spring boot 配置动态刷新
本文测试使用的spring cloud版本为: Dalston.SR1 很多朋友只知道spring cloud config可以刷新远程git的配置到内存中, 却不知道spring cloud con ...