Erro, estou escrevendo em arquivo em hexadecimal "0x0A" e aparece o "0x0D" logo antes. [RESOLVIDO]

1. Erro, estou escrevendo em arquivo em hexadecimal "0x0A" e aparece o "0x0D" logo antes. [RESOLVIDO]

Luis Felipe Miranda da Silva
luisfelip80

(usa Debian)

Enviado em 03/11/2017 - 00:46h

Ajuda, estou escrevendo em um arquivo números hexadecimais, mas toda vez que escrevo "0x0A" no arquivo, antes dele aparece o "0x0D", como posso evitar esse "0x0D"? Ele está atrapalhando tudo.
exemplo do código:
"int i [11]={0x4a,0x4d,0xfe,0x0a,0x00,0x36,0x28,0x1e,0x01,0x18,0xc8};

arq=fopen("modelo2.bmp", "w");
if(arq!=NULL){
for(k=0;k<4;k++){
fprintf(arq,"%c",i[3]);
}
"



  


2. MELHOR RESPOSTA

Paulo
paulo1205

(usa Ubuntu)

Enviado em 03/11/2017 - 04:34h

Pelo visto, você está usando Windows. O Windows diferencia arquivos binários de arquivos texto, e trabalha com arquivos de texto por padrão.

Para trabalhar com arquivos em modo binário, você deve dizer isso na hora de os abrir com fopen(). No seu caso, abra seu arquivo com "wb" em vez de apenas "w" cmo segundo argumento de fopen().


Uma dica a mais: usar fprintf() para escrever um byte de cada vez é como usar um canhão para matar um mosquito. Em vez disso, use fputc().





Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts