是否有可能让ostream
输出带有字符A-F
而不是a-f
的十六进制数字?如何使用A-F(而非a-f)流式传输十六进制数字?
int x = 0xABC;
std::cout << std::hex << x << std::endl;
此输出abc
而我宁愿看到ABC
。
是否有可能让ostream
输出带有字符A-F
而不是a-f
的十六进制数字?如何使用A-F(而非a-f)流式传输十六进制数字?
int x = 0xABC;
std::cout << std::hex << x << std::endl;
此输出abc
而我宁愿看到ABC
。
是的,你可以使用std::uppercase
,这会影响浮点和十六进制整数输出:
std::cout << std::hex << std::uppercase << x << std::endl;
如下面的完整的程序:
#include <iostream>
#include <iomanip>
int main (void) {
int x = 314159;
std::cout << std::hex << x << " " << std::uppercase << x << std::endl;
return 0;
}
,输出:
4cb2f 4CB2F
这个修饰符只会影响十六进制数字,还是会影响字符串? – 2010-11-07 10:03:40
十六进制数和指数用科学计数法表示。如果你想做字符串,请参阅http://stackoverflow.com/questions/735204/convert-a-string-in-c-to-upper-case – paxdiablo 2010-11-07 10:10:13
请问这个问题的解决者是否可以向我解释什么是这样的犯罪 题?事实上,我已经打开MSDN“十六进制”,希望找到答案,但我没有。那么这个问题有什么问题? – 2010-11-07 09:39:52
不知道,但这是对付它的赞成票。我喜欢这样做,因为它是公平的(特别是对那些有真正问题的人来说 - 这意味着所有开发人员的水平,而不仅仅是像我这样的讨厌的知道所有人),但主要是因为它困扰了驱动者 - downvoters谁甚至不愿意留下评论,以便改善问题。当然,他们很可能会在报复中降低我的回答,但它不像我缺乏代表:-) – paxdiablo 2010-11-07 09:50:42
@paxdiablo:我对报复性降薪的感觉是,任何可能卷入这种胡言乱语的人都不到我的代表的一半,所以我会赢得那一场。由于我的代表不到一半,所以可以超过两倍... – 2010-11-07 10:38:56