Я пытаюсь написать простую программу для загрузки файлов на свой сервер. Я хотел бы преобразовать двоичные файлы в hex. Я что-то написал, но он работает неправильно.Преобразование из двоичного файла в hex в C
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
static int bufferSize = 1024;
FILE *source;
FILE *dest;
int n;
int counter;
int main() {
unsigned char buffer[bufferSize];
source = fopen("server.pdf", "rb");
if (source) {
dest = fopen("file_test", "wb");
while (!feof(source)) {
n = fread(buffer, 1, bufferSize, source);
counter += n;
strtol(buffer, NULL, 2);
fwrite(buffer, 1, n, dest);
}
}
else {
printf("Error");
}
fclose(source);
fclose(dest);
}
Я использую strtol для преобразования двоичного сделать шестигранник. После вызова этого кода у меня есть все еще странные символы в файле file_test.
Я бы хотел загрузить файл на сервер, например файл PDF. Но сначала я должен написать программу, которая преобразует этот файл в шестнадцатеричный файл. Я хотел бы, чтобы длина строки в шестнадцатеричном файле была равна 1024. После этого я вывожу этот файл строки за строкой с помощью PL/SQL.
Что вы хотите иметь? Не можете ли вы просто прочитать двоичные значения с помощью шестнадцатеричного редактора? Я бы не понял смысла в преобразовании двоичного кода в человеко-читаемый гекс. – guitarflow
'strtol()' не делает то, что вы думаете. Прочтите свою документацию. – Blastfurnace
Как насчет использования формата base64? здесь обсуждение http://stackoverflow.com/questions/342409/how-do-i-base64-encode-decode-in-c – 2r2w