如何使用AF(而不是af)传输十六进制数字?

Arm*_*yan 10 c++ hex iostream iomanip

是否可以ostream使用字符输出十六进制数字A-F而不是a-f

int x = 0xABC;
std::cout << std::hex << x << std::endl;
Run Code Online (Sandbox Code Playgroud)

这是输出,abc而我更愿意看到ABC.

pax*_*blo 12

是的,您可以使用std::uppercase,这会影响浮点和十六进制整数输出:

std::cout << std::hex << std::uppercase << x << std::endl;
Run Code Online (Sandbox Code Playgroud)

如下面的完整程序:

#include <iostream>
#include <iomanip>

int main (void) {
    int x = 314159;
    std::cout << std::hex << x << " " << std::uppercase << x << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

哪个输出:

4cb2f 4CB2F
Run Code Online (Sandbox Code Playgroud)

  • 十六进制数字和科学记数法的指数.如果您想要字符串,请参阅http://stackoverflow.com/questions/735204/convert-a-string-in-c-to-upper-case (2认同)