c++ - 我可以给出一个流来在 C++ 中的数字上打印前导零的指令是什么?

标签 c++ formatting zero clog leading-zero

我知道如何使它成为十六进制:

unsigned char myNum = 0xA7;
clog << "Output: " std::hex << int(myNum) << endl;
// Gives:
//   Output: A7

如果 myNum 只需要一位数字,我希望它始终打印前导零:

unsigned char myNum = 0x8;
// Pretend std::hex takes an argument to specify number of digits.
clog << "Output: " << std::hex(2) << int(myNum) << endl;
// Desired:
//   Output: 08

那么我该怎么做呢?

最佳答案

它没有我想要的那么干净,但是您可以将“填充”字符更改为“0”来完成这项工作:

your_stream << std::setw(2) << std::hex << std::setfill('0') << x;

但是请注意,您为填充设置的字符是“粘性的”,因此在执行此操作后它将保持为“0”,直到您将其恢复为类似于 your_stream << std::setfill(' '); 的空格。 .

关于c++ - 我可以给出一个流来在 C++ 中的数字上打印前导零的指令是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5131061/

相关文章:

c++ - 为 tolower 禁用不需要的过载

c++ - undefined symbol : _ZL22__gthrw_pthread_cancelm error

声明中的 C++ 引用运算符

c++ - 从 int 显式转换为用户定义的类,c++

javascript - 可以找到文本的 CSS 选择器?

c - 删除 c 中的前导零

.net - WPF RichTextBox - 键入文本的格式

r - 通过符号在ggplot2中设置特定的填充颜色

crystal-reports - 用前导零填充固定数字直至固定长度

c# - C 如何断言该结构不等于 0?