我知道如何使它成为十六进制:
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/