11

出力を文字ではなくostream16進数にすることは可能ですか?A-Fa-f

int x = 0xABC;
std::cout << std::hex << x << std::endl;

これは出力しますabcが、私は見たいと思いますABC

4

2 に答える 2

12

はい、使用できますstd::uppercase。これは、浮動小数点と16進整数の出力に影響します。

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-07T09:25:50.287 に答える
1

std::formatC ++ 20では、これを行うために使用できるようになります。

std::cout << std::format("{:X}\n", 0xABC);  

出力:

ABC

それまでの間、に基づいて{fmt}ライブラリを使用できます。std::format{fmt}は、printこれをさらに簡単かつ効率的にする関数も提供します(godbolt)。

fmt::print("{:X}\n", 0xABC); 

免責事項:私は{fmt}とC++20の作者ですstd::format

于 2021-03-03T04:36:55.773 に答える