Есть ли способ преобразовать hexdump, например, aec4d2f3c6a4e70ea6cea074f65812d2a34b180cc92b817edcd867167e7a91c5beb942f0 в строку в c, чтобы каждые две шестнадцатеричные цифры образовывали символ?Если так, то что?
Читает из стандартного ввода и печатает в стандартный вывод:
int main() { int ch; while(scanf("%2x", &ch) == 1) putchar(ch); }
Я думаю, что вы можете легко изменить его в соответствии с вашими требованиями к источнику и пункту назначения.
Один из способов:
size_t unBytes = strHex.size() / 2; std::string strResult(unBytes, 0); for (size_t i = 0; i < unBytes; ++i) { std::istringstream in(strHex.substr(2*i, 2)); int byte = 0; in >> std::hex >> byte; strResult[i] = byte; }
Используйте scanf с %hhx несколько раз.Смотри man scanf.
%hhx
man scanf