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

Lista Encadeada em Arquivo


joaogabriel97

Pergunta

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 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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...