boost::lexical_cast int 用零填充字符串
Posted
技术标签:
【中文标题】boost::lexical_cast int 用零填充字符串【英文标题】:boost::lexical_cast int to string padding with zeros 【发布时间】:2014-01-15 08:03:17 【问题描述】:我需要使用生成的名称创建文件。我使用boost::lexical_cast
将整数转换为std::string
。是否有可能获得带有填充零的字符串?
我没有c++11 tools
,只有MSVS 2008
支持的所有内容。
例子:
int i = 10;
std::string str = boost::lexical_cast<std::string>(i);
// str = "10"
// expect str = "000010"
附言请不要建议使用 sprintf。
【问题讨论】:
如果你想保持对它的感觉,只需编写一个模板化函数,它在内部使用std::ostringstream
但添加填充(可能带有指定整体宽度的参数?)....
【参考方案1】:
为什么是boost::lexical_cast
?使用std::stringstream
std::ostringstream ss;
ss << std::setw(6) << std::setfill('0') << i;
const std::string str = ss.str();
【讨论】:
setw
和 setfill
在 <iomanip>
中声明。 setfill
被插入到output streams
上,所以最好使用std:ostringstream
。形成更多信息setw 和setfill。【参考方案2】:
您可以使用std::ostringstream
和普通流manipulators 进行格式化。
【讨论】:
以上是关于boost::lexical_cast int 用零填充字符串的主要内容,如果未能解决你的问题,请参考以下文章
boost::lexical_cast<> 的语言环境不变保证
static_cast 与 boost::lexical_cast
在 C++ 中使用 boost::lexical_cast 将双精度转换为字符串?