Запись hex в бинарный файл, c++
Мне надо записать данный hex-код в бинарный файл. Я уже когда-то писал похожую программу, но сейчас, когда пытаюсь, перенести этот код в другой проект возникает ошибка: вместо данного кода в hex многократно записывается один и тот же байт (каждый раз разный):
При этом, если писать в старом старом решении, всё будет работать отлично. В чём может быть проблема?
Код, который используется для сохранения файла:
FILE* ptr = fopen(output_path.c_str(), "wb");
char* c = new char[2];
for (size_t i = 0; i < hex_str.size(); i += 2)
{
input = "";
input += hex_str[i];
input += hex_str[i + 1];
input = strtol(input.c_str(), &c, 16);
fwrite(&input, 1, 1, ptr);
}
fclose(ptr);
Пытался найти разницу в настройках между старым и новым решениями, но при изменениях появлялись новые ошибки.
Так же буду рад, если найдутся альтернативные записи string в hex, но очень интересно, почему именно это решение работает не везде.
Значения переменной input точно изменяется, вот часть вывода перед преобразованием в hex-формат:
и после преобразования в hex-формат:
Ответы (1 шт):
В комментариях помогли разобраться с вопросом. Код заработал при замене строки
fwrite(&input, 1, 1, ptr);
на
fwrite(input.c_str(), 1, 1, ptr);


