У меня есть выход заявление с printf
в C++, которая выглядит следующим образом:C++ станд :: соиЬ в шестнадцатеричном
for(int i=0; i<6; i++)
printf("%.2X", (unsigned char) iter->hwaddress[i]);
мне нужно сделать вывод с std::cout
, я попытался сделать это следующим образом:
for(int i=0; i<6; i++)
cout << hex << (unsigned char) iter->hwaddress[i];
, но это просто дает мне:
�:�:w:�:�:
кто-нибудь знает, как это сделать?
Если 'char' подписан, а' c' отрицательный, это даст более длинные результаты, чем ожидает OP (и приведение в 'unsigned' не помогает). Вам нужно будет пойти неловко выглядящий маршрут и использовать 'static_cast (static_cast (c))', чтобы избежать расширения знака. –
Wintermute