Jump to content
Fórum Script Brasil
  • 0

Lista Encadeada em Arquivo


joaogabriel97
 Share

Question

Preciso de ajuda,como faço a função de salvar a lista em um arquivo,fiz varios testes e não consegui,o que estou errando,o que fazer.Urgente.

#include <stdio.h>
#include <stdlib.h>
typedef struct celulaLista {
	int informacao;
	struct celulaLista *proximo;
} celula;

int main() {
	celula *pLista;
	int opcao = 0;
	void initLista(celula **pRecebido);
	void insertLista(celula **pRecebido);
	void buscaListaSimples(celula **pRecebido);
	void removeElementoListaSimples(celula **pRecebido);
	void salva(celula **pRecebido);
	int leValor(int *valorRecebido);
	pLista = (celula *)malloc(sizeof(struct celulaLista));
	initLista(&pLista);
	for(;;) {
		printf("\n1 - Inserir  ");
		printf("\n2 - Consultar ");
		printf("\n3 - Remover");
		printf("\n4 - Salvar em Arquivo");
		printf("\n5 - Sair \n ");
		scanf("%d", &opcao);
		opcao = leValor(&opcao);
		switch(opcao) {
			case 1:
				insertLista(&pLista);
				break;
			case 2:
				buscaListaSimples(&pLista);
				break;
			case 3:
				removeElementoListaSimples(&pLista);
				break;
			case 4:
				salva(&pLista);
			     break;
			case 5:     
				exit(0);
		}
	}
	return 0;
}
void initLista(celula **pRecebido) {
	(*pRecebido)->proximo = NULL;
}
void insertLista(celula **pRecebido) {
	celula *temporario;
	int valor;
	printf("\nInforme um Valor a ser Inserido : ");
	scanf("%d", &valor);
	temporario = (celula *)malloc(sizeof(celula));
	temporario->informacao = valor;
	temporario->proximo = (*pRecebido)->proximo;
	(*pRecebido)->proximo = temporario;
	
}
void buscaListaSimples(celula **pRecebido) {
	celula *temporario;
	if((*pRecebido)->proximo == NULL) {
		printf("Lista Vazia!\n");
	} else {
		temporario = (celula *)malloc(sizeof(celula));
		temporario = (*pRecebido)->proximo;
		while(temporario != NULL) {
			printf("Valor : %d\n", temporario->informacao);
			temporario = temporario->proximo;
		}
	}
}
void removeElementoListaSimples(celula **pRecebido) {
	celula *temporario;
	if((*pRecebido)->proximo == NULL) {
		printf("\nLista Vazia!");
	} else {
		temporario = (*pRecebido)->proximo;
		(*pRecebido)->proximo = temporario->proximo;
		free(temporario);
	}
}
int leValor(int *valorRecebido) {
	while((*valorRecebido > 4) || (*valorRecebido < 1)) {
		printf("Opcao Invalida. Informe novamente : \n");
		scanf("%d", &(*valorRecebido));
	}
	return(*valorRecebido);
}
void salva(celula **pRecebido){
	celula *temporario;
	
	FILE *arquivo;
	arquivo = fopen("Arquivo.txt", "w");
	if(arquivo == NULL){
		printf("Erro na abertura do arquivo!");
	}
     else{
	 }
	 fclose(arquivo);
	 printf("Salvo com Sucesso");
}

 

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...