Equivalent of %02d with std::stringstream?(相当于 %02d 与 std::stringstream?)
问题描述
我想以 printf
的 %02d
的等效格式将整数输出到 std::stringstream
.有没有比以下更简单的方法来实现这一点:
I want to output an integer to a std::stringstream
with the equivalent format of printf
's %02d
. Is there an easier way to achieve this than:
std::stringstream stream;
stream.setfill('0');
stream.setw(2);
stream << value;
是否可以将某种格式标志流式传输到 stringstream
,例如(伪代码):
Is it possible to stream some sort of format flags to the stringstream
, something like (pseudocode):
stream << flags("%02d") << value;
推荐答案
您可以使用 <iomanip>
中的标准操纵器,但没有一个可以同时完成 fill
和 width
一次:
You can use the standard manipulators from <iomanip>
but there isn't a neat one that does both fill
and width
at once:
stream << std::setfill('0') << std::setw(2) << value;
编写自己的对象在插入流中时执行这两个功能并不难:
It wouldn't be hard to write your own object that when inserted into the stream performed both functions:
stream << myfillandw( '0', 2 ) << value;
例如
struct myfillandw
{
myfillandw( char f, int w )
: fill(f), width(w) {}
char fill;
int width;
};
std::ostream& operator<<( std::ostream& o, const myfillandw& a )
{
o.fill( a.fill );
o.width( a.width );
return o;
}
这篇关于相当于 %02d 与 std::stringstream?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:相当于 %02d 与 std::stringstream?
基础教程推荐
- 使用从字符串中提取的参数调用函数 2022-01-01
- Windows Media Foundation 录制音频 2021-01-01
- 如何在不破坏 vtbl 的情况下做相当于 memset(this, ...) 的操作? 2022-01-01
- 从 std::cin 读取密码 2021-01-01
- 在 C++ 中循环遍历所有 Lua 全局变量 2021-01-01
- 为 C/C++ 中的项目的 makefile 生成依赖项 2022-01-01
- 为什么语句不能出现在命名空间范围内? 2021-01-01
- 如何使图像调整大小以在 Qt 中缩放? 2021-01-01
- 如何“在 Finder 中显示"或“在资源管理器中显 2021-01-01
- 管理共享内存应该分配多少内存?(助推) 2022-12-07