Abertura e gravacao de ficheiros (files)
Oi pessoal estou com um problema na gravação e abertura de ficheiros
Depois de gravar o ficheiro, quando o volto a abrir o que tinha sido escrito desaparece, ou seja fico com o ficheiro vazio.
o código é o seguinte:
as estruturas
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;
a funcao 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;
}
a funcao 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;
}
}lomba está offline
Responder com Quote
Discussão (1)
Carregando comentários...