是否有可能讓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