请考虑以下几点:
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
' 代表了以后要传入的值——在我们的应用程序中,这个的实际用例是有一些比这更复杂的事情,由于各种原因,理想的情况是不必穿鞋——在某些特定情况下使用喇叭。