次の点を考慮してください。
unsigned char a(65);
unsigned char z(90);
std::cout << std::hex << a << ", " << z <<std::endl;
出力:
A, Z
しかし、望ましい出力は次のとおりです。
41, 5a
これを達成するために、次のように値を変換する必要がないようにしたいと思います。
std::cout << std::hex << int(a) << ", " << int(z) <<std::endl;
代わりに、事前に含めることができる魔法のマニピュレーターを用意します。
std::cout << uchar_hex_manip << a << ", " << z << std::endl;
私の質問は、「uchar_hex_manip」が必要に応じて機能するように定義するにはどうすればよいですか?
更新:これまでのすべてのコメントと提案に感謝しますが、値の変換を避けたいとすでに述べており、誰もそれを完全に認めていないようです. 上記の ' a << ", " << z
' は、後でストリーミングされる値を表しています。このアプリケーションでの実際の使用例は、さまざまな理由から靴を履く必要がないことが理想的である場合に、それよりも複雑なことが起こっている場合です。特定の場合の一部のキャストのホーン。