1
Well, I need to pass a chained list to a file and I did a function for it but I can’t. Besides I’ve done several tests and I couldn’t.
#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");
}
Just missing smoke to save,.
– spider tek
What happens when you run the save function?
– FReNeTiC
It’s kind of like the
buscaListaSimples()
. You have to go through the whole list and save to the file.– pmg