
Enviado em 01/02/2018 - 18:26h
Olá, estou trabalhando em um programa que converte arquivos binários em código hexadecimal, depois de muita pesquisa consegui converter os arquivos corretamente para HEX, mas estou tendo problemas em fazer o processo inverso.char *fnp = "imagem.png";
size_t size;
FILE *fp;
fp = fopen(fnp,"rb");
if( fp == NULL )
{
perror("Error while opening the file.\n");
exit(EXIT_FAILURE);
}
// Move o ponteiro para o final do arquivo
fseek(fp,0,SEEK_END);
// pega a posicao atual do ponteiro no arquivo
size = ftell(fp);
// Volta o ponteiro para a posicao inicial do arquivo
rewind(fp);
/*
* Listagem do conteudo do arquivo em hexadecimal
*/
char *sfinal = malloc((size * 8) + 1);
size_t i;
char *buffer = NULL;
int brk = 0;
buffer = malloc(size + 1);
fread(buffer, 1, size, fp);
for(i = 0; i < size; i++)
{
char hex[8];
sprintf(hex, "%.2X ", (unsigned int) buffer[i] & 0xff);
strcat( sfinal, hex );
if( !(++brk % 16) ) strcat( sfinal, "\n" );
}
free(buffer);
buffer = NULL;
//Fechamento do arquivo
fclose(fp);
A combinação de WMs com compositores feitos por fora
Audacious, VLC e QMMP - que saudades do XMMS
SUNO OpenSource: Crie um servidor de gerador de música com IA
Instalação Completa e Configuração Básica do Void Linux
A Fundação da Confiança Digital: A Importância Estratégica de uma PKI CA na Segurança de Dados
Tenha opção de emblemas embutido no pcmanfm
Instalar o Microsoft Teams no Ubuntu e Derivados
Erro ao instalar o linux-headers (2)
O WiFi não reconhece minha rede depois que o processo de suspensão é r... (4)









