【发布时间】:2011-08-11 05:48:13
【问题描述】:
如何使用 cout 打印 0x0a 而不是 0xa?
#include <iostream>
using std::cout;
using std::endl;
using std::hex;
int main()
{
cout << hex << showbase << 10 << endl;
}
【问题讨论】:
-
您的具体要求是什么。标题为
0x0a,您的问题正文为0x0A。无论哪种方式,明确的std::cout << "0x0a"或std::cout << "0x0A"似乎都可以满足您的要求,但我假设您确实想要格式化数字。您希望(例如)16、255、256、65536、-1 的格式如何? -
@Charles 问题是关于如何在 x 之后和 A 或 a 之前打印 0。您可以验证第一个答案是错误的,因为它仍然打印 0xa (如果使用大写,则为 0xA)。但无论如何,这个问题已经被标记为已回答。
-
但是为什么要多出
0?你总是想要0x0还是需要字符串的最小长度? -
如果十六进制数是 0xA,我希望它是 0x0A。如果数字是 0x123,我希望它是 0x0123,依此类推,即偶数个十六进制数字。
-
我认为你不明白我在说什么。您已经明确指定了 10 的显示方式,但是 1 到 9 和 11 到 15 呢? 256呢?你想要
0x0a是因为你想要一个最小宽度还是因为你总是想要一个前导零?除非您完全符合您的规范,否则您可能无法得到您想要的答案。