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

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

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(' '); 的空格。 .

https://stackoverflow.com/questions/5131061/

相关文章:

python - 格式化数字,使它们在小数点上对齐

xml - 在 Scala 中生成格式化的 XML

c - 如何将 unsigned int 格式化为 8 位十六进制数?

php - mysql时间戳转换/格式化通知: A non well formed numeric

python - 带有负索引的 str.format(list) 在 Python 中不起作用

iphone - 在Objective-C中将小数转换为分数?

java - RSS 2.0 提要中的 RFC-822 日期时间格式 : CET not accep

git - 如何为 git diff 中使用的寻呼机设置标签大小?

java - 无法解析自定义日期格式。 ( java )

formatting - 如何打印具有所有可用精度的 Rust float ?