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

Abertura de ficheiros


lomba

Pergunta

Depois de gravar um ficheiro de estruturas, quando tento aceder a esse mesmo ficheiro, toda a informação que tinha sido gravada não existe. Eu estou a usar o compilador codeblocks e quando compilo o programa não me dá erros nem warnings só que quando acedo a um ficheiro gravado não tenho nada gravado. Já revi o código varias vezes e modifiquei o fread e o fwrite mas nada melhorou.

As partes do codigo são as seguintes

Estruturas utilizadas

typedef struct movel{char designacao[25],marca[25];float potencia,hsimples,hvazio,hfvazio;int quantidade; }ELETRO;
struct home{char nome[25]; int tam;ELETRO *domestico;};
typedef struct home DIVISAO;
Gravar ficheiro
DIVISAO* gravar_ficheiro(char *op,DIVISAO *zona, int *n, int *v,int *k, int *s, char *b,char *nome_fich)
{
FILE *ficheiro; int z, i;

printf("\t\t\t ***** Gravar ficheiro *****\nQual o nome do ficheiro?");
maiusculas_pesquisa(zona,v,k,s,b);
strcpy(nome_fich,b);
if((ficheiro=fopen(nome_fich,"wb"))==NULL)
printf("\nNao foi possivel abrir ficheiro");
fwrite(n,sizeof(int),*n,ficheiro);
fwrite(zona,sizeof(DIVISAO),*n,ficheiro);
for(i=0;i<*n;i++)
{
fwrite(&zona[i].tam,sizeof(int),zona[i].tam,ficheiro);
fwrite(zona[i].domestico,sizeof(ELETRO),zona[i].tam,ficheiro);
}
z=fclose(ficheiro);
if(z!=0)
puts("\nProblemas na gravação do ficheiro");
getch();
}
return zona;
}
Abrir ficheiro
DIVISAO * abrir_ficheiro( DIVISAO *zona, int *n, int *v, int *k, int *s, char *b, char *nome_fich)
{
FILE *ficheiro; int z, i;

printf("\t\t\t ***** Abrir ficheiro *****\nQual o nome do ficheiro?");
maiusculas_pesquisa(zona,v,k,s,b);
strcpy(nome_fich,b);
if((ficheiro=fopen(nome_fich,"rb"))==NULL)
{
puts("\nImpossivel abrir o ficheiro");
getch();
}
else
{
fread(n,sizeof(int),*n,ficheiro);
fread(zona,sizeof(DIVISAO),*n,ficheiro);
for(i=0;i<*n;i++)
{
fread(&zona[i].tam,sizeof(int),zona[i].tam,ficheiro);
fread(zona[i].domestico,sizeof(ELETRO),zona[i].tam,ficheiro);
}
z=fclose(ficheiro);
if(z!=0)
puts("\nProblemas na fecho do ficheiro");
getch();
return zona;
}
}

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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,2k
    • Posts
      652k
×
×
  • Criar Novo...