Boas
Eu precisa-va de guardar e carregar uma estrutura de dados num ficheiro binário e depois conseguilo carregar.
A parte do gravar aparente mete funciona vem agora a parte do carregaer é que não consigo de maneira nenhuma por a funcionar.
Se alguem poder ajudar agradecia.
Eu precisa-va de guardar e carregar uma estrutura de dados num ficheiro binário e depois conseguilo carregar.
A parte do gravar aparente mete funciona vem agora a parte do carregaer é que não consigo de maneira nenhuma por a funcionar.
Se alguem poder ajudar agradecia.
Código:
void GravarRestaurantes(Rest *ListaRestaurantes){ //Método que permite guarda em ficheiro binário
Rest aux;
if(ListaRestaurantes!=NULL){
FILE *fp;//ponteiro para ficheiro
fp=fopen("Restaurante","wb");//se o ficheiro nao existe, cria-o, se existe será substituido por este
if(fp!=NULL){
for(aux=*ListaRestaurantes; aux!=NULL; aux=aux->proximo){
fwrite(aux,sizeof(Restaurante), 1,fp);
}
}
fclose(fp);
printf("\nAs suas alteraçoes foram salvas em ficheiro\n");
system("pause");
}
else{
printf("A lista esta vazia\n");
system("pause");
}
}
//Função que nos permite carregar o ficheiro binario
Rest* CarregarRestaurantes(Rest *ListaRestaurantes){
printf("Carregar\n") ;
Rest aux2, ptr, *apagado;
int tal=1;
int op;
FILE *fp;
fp=fopen("Restaurante","rb");
if(ListaRestaurantes==NULL){
while(tal>0){
Rest aux=(Rest)malloc(sizeof(Rest));
tal=fread(aux,sizeof(Restaurante), 1,fp);
if (tal>0){
printf("\nNome= %s\n",aux->nome);
if(ListaRestaurantes==NULL){
*ListaRestaurantes=aux;
aux2=aux;
}
else{
aux2->proximo=aux;
aux2=aux;
}
}
}
fclose(fp);
printf("Os seus dados foram lidos do ficheiro!!\n");
}
system("pause");
return ListaRestaurantes;
}
Última edição pelo moderador: