Ir para conteúdo
Fórum Script Brasil
  • 0

copiar gif


tuga

Pergunta

boas estou a tentar fazer uma copia de um uma imagem .gif através da leitura e escrita binaria mas não está a funcionar

o que eu tentei fazer foi:

#include <stdio.h>   /* Standard input/output definitions */
#include <string.h>  /* String function definitions */
#include <unistd.h>  /* UNIX standard function definitions */
#include <fcntl.h>   /* File control definitions */
#include <errno.h>   /* Error number definitions */
#include <termios.h> /* POSIX terminal control definitions */
#include<stdlib.h>

typedef struct dados{

    

        char *dado;
        

    

        struct dados *next;

        

        }tdados, *Aptdados; 

        

    Aptdados dados;
    

void inserirdado(char dado[20])
{
    Aptdados info;
    
    info = (Aptdados)malloc(sizeof(tdados));

    strcpy(info->dado, dado);
    

    if(dados == NULL)
    {
        info->next = NULL;
        dados = info;
    }
    else
    {
        info->next = dados;
        dados = info;
    }
}
int le()
{


    FILE *fp;
    char dado[20];
    int n;
    
    
    fp = fopen("lecom.gif","r");
    

    while(n > 19)
        {
        n = fread(dado, 1, 20, fp);
        inserirdado(dado);
        
        }
        
        printf("\n Leitura completa.");
        
        fclose(fp);
        getchar();
        
        return 1;
}

int escreve()
{
    Aptdados m;
    m = dados;
    FILE *fd;
    
    fd = fopen("cop.gif","w");

    while(m != NULL)
        {
        fwrite(m->dado, 1, 20, fd);
        m = m->next;
        }
    printf("\n Cópia completa\n");
    
    fclose(fd);
    
    return 1;
}

int main()
{
    le();
    getchar();
    escreve();
    
    
    return 1;
}

Este código assim está a dar falha de segmentação

Se alguém puder ajudar agradecia

Cumps Thga

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

você não tem q abrir com "rb" e "wb" em vez de "r" e "w"??

tipo assim:

fd = fopen("cop.gif","wb");
em vez de:
fd = fopen("cop.gif","w");

porque com o b no final abre como binario. já fiz certa vez um programa q fazia isso tb, mas ele dava erro seu eu não colocava o b. eu reparei q quando tinha o caracter 10 ou o 13 ele gravava o 13 seguido do 10 sempre pra fazer a quebra de linha.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...