(二)boost库之字符串格式化
程序中经常需要用到字符串格式化,就个人而言还是比较倾向于C格式的输出,如果只是打印日志,printf就够了,如果到生成字符串,获取你可以选择sprintf,但这些都是需要你预先分配空间的,对于一些不可预知长度的字符串格式化,就比较鸡肋了,不过还是可以实现的,如:
void XString::format(const char *strFmt, ...)
{
va_list vl;
va_start(vl, strFmt);
int count = _vscprintf(strFmt, vl); //_vsctprintf(format, vl);
va_end(vl);
char *pszBuf = new char[count + 1];
va_start(vl, strFmt);
vsprintf_s(pszBuf, count + 1, strFmt, vl); //_vstprintf_s
va_end(vl);
this->assign(pszBuf);
delete pszBuf;
}
但对于C++程序来说,%s支持的字符串参数类型必须是char*, 所以程序到处都需要.c_str(),经常也会因此造成大量的乱码输出
有了boost的format组件,以上问题就都迎刃而解了。
一、format 替代printf的功能
std::cout << format("%s:%04d%02d%02d") % "日期"% 2013 % 9 % 28 << std::endl;
%s可以是std::string
std::string test("string");
format fmt3("%s");
std::cout << format("%s") % test<< std::endl;
二、format支持%N
format fmt2("%1% + %2%*%1% = %3%");
fmt2 % 2 % 3 % (2+2*3) ;
std::cout << fmt2.str() << std::endl;
(二)boost库之字符串格式化相关推荐
- MFC中将用户输入的表示16进制数的字符串转换成16进制数输出显示(包含1.wstring转成string的方法函数2.用boost库拆分字符串的函数3.字符转16进制数值的函数)
前期准备: 1.电脑中安装好boost库,我的电脑中安装在C盘根目录下,如下图所示: 2.配置好boost环境变量,如下图所示: 3.开发环境VS2015,工程为MFC应用程序 需要的头文件如下: # ...
- (三)Boost库之字符串处理
字符串处理一直是c/c++的弱项,string_algo库很好的弥补了这一点. string_algo 库算法命名规则: 前缀i : 有这个前缀表名算法的大小写不敏感,否则大小写敏感 后缀_ ...
- C++ Boost库:简介和第一个示例程序
文章目录 1. 简介 2. Boost库开发环境搭建 3. 一个简单的示例程序 4. hpp文件简介 C++ Boost库:简介和第一个示例程序 C++ Boost库:数值转换 lexical_cas ...
- C++ Boost库:数值转换 lexical_cast
文章目录 1. C/C++数值转换函数 2. boost数值转换lexical_cast C++ Boost库:简介和第一个示例程序 C++ Boost库:数值转换 lexical_cast C++ ...
- C++ Boost库:日期时间库 date_time
文章目录 1. 简介 2. 基本使用 3. date_period类 4. ptime类 5. time_period类 C++ Boost库:简介和第一个示例程序 C++ Boost库:数值转换 l ...
- C++ Boost库:windows下编译Boost库
文章目录 1. 需要编译的boost库 2. 编译步骤 3. 库命名规则 4. VS配置库目录 C++ Boost库:简介和第一个示例程序 C++ Boost库:数值转换 lexical_cast C ...
- C++ - std::string字符串格式化方法总结
文章目录 1 C++ std::string字符串格式化 1.1 C语言中的字符串格式化 1.2 C++使用std::stringstream进行字符串格式化 1.3 开源的C++单个头文件的字符串格 ...
- Boost库学习笔记(二)算法模块-C++11标准
Boost库学习笔记(二)算法模块-C++11标准 一.综述 Boost.Algorithm是一系列人通用推荐算法的集合,虽然有用的通用算法很多,但是为了保证质量和体积,并不会将太多通用算法通过审查测 ...
- 使用logcxx库和boost库构建系统日志的格式化输出
作者:朱金灿 来源:http://blog.csdn.net/clever101/ logcxx库作为一个强大的C++日志系统,在业内得到越来越多的应用.但是logcxx库欠缺一个格式化日志输出的能力 ...
最新文章
- NAT技术解决了IPv4地址短缺的问题,假设内网的地址数是m,而外网地址数n,若mn,则这种技术叫做(66),若mn,且n=1,则这种技术这叫做(67)。【答案】A C
- 成本VS用户体验, 服务台互动语音应答(IVR)介绍
- C语言ODBC数据库操作
- 合工大python期末复习知识点汇总
- H264码流打包分析
- python中文字符串转list
- python2 与 python3的区别
- Android软键盘与EditText近乎完美的交互
- 揭开艺术特长考试神秘面纱
- 怎样找回xp调整分区后盘符不见的文件
- 计算机四级网络工程师等级考试题库软件---百度云分享
- header元素的使用
- opencv3中的图像混合操作
- 计算机技术预测蛋白质结构,线上分享 | 同源建模预测蛋白质结构,中科院计算所ProALIGN研究解读...
- 查看服务器gpu使用情况以及使用者
- 【天光学术】会计论文:S 快递企业借壳上市动因及效益分析(节选)
- Win10忘记pin码以及密码的解决办法(亲测有用)
- pybullet入门第一节
- Centos 7下安装pip(简略版)
- 自己平时长期积累的java资料可供大家学习