我为这件事做了谷歌搜索,但还没有找到答案。我想在纯 C 中找到输出格式的模拟。更具体地说,类似于printf(%.3x)
可能的东西,它可以使用操纵器来完成。然而,代码
cout << showbase << setfill('0') << setw(5) << hex << 19 << endl;
给我00x13
而不是期望0x013
。
PS对不起,我没有Boost库,所以这不是解决方案..
我为这件事做了谷歌搜索,但还没有找到答案。我想在纯 C 中找到输出格式的模拟。更具体地说,类似于printf(%.3x)
可能的东西,它可以使用操纵器来完成。然而,代码
cout << showbase << setfill('0') << setw(5) << hex << 19 << endl;
给我00x13
而不是期望0x013
。
PS对不起,我没有Boost库,所以这不是解决方案..
利用internal
:
cout << showbase << setw(5) << setfill('0') << internal << hex << 19 << endl;
cout << "0x" << setfill('0') << setw(3) << hex << 19 << endl;
请注意setfill
并hex
更改流的状态以进行后续输出,unlkesetw
只会影响下一个输出。
char buffer[40];
snprintf(buffer, 40, "%.3x", 19);
std::cout << buffer;