据我所知,可以使用了iomanip设置精度标志为浮点数(例如具有2.0000,而不是2.00)。

有可能的方式做到这一点,对于整数?

我想一个十六进制数,以显示作为000e8a00而不仅仅是e8a00或00000000,而不是0。

这是可能在C ++中,使用标准库?

有帮助吗?

解决方案

使用操纵器:

std::cout << std::setfill('0') << std::setw(8) << std::hex << 0 << std::endl;

无操纵器:

std::cout.fill('0');
std::cout.width(8);
std::cout.setf(std::ios::hex, std::ios::basefield);
std::cout << 42 << std::endl;

其他提示

您也可以用升压为此::格式的,我觉得这往往可以节省打字:

std::cout << boost::format("%08x\n") % 0xe8a00;

这也使得一些不错的代码重用,如果您有多个地方,你需要做相同的格式:

boost::format hex08("%08x");
std::cout << hex08 % 0xe8aa << std::endl;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top