-1
I could not in any way make my program save on file at the end.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
struct stNo {
int info;
char nome[50];
char email[60];
char celular[11];
int idade;
struct stNo *ant,*prox;
};
struct stNo *cria_no() {
struct stNo *p;
if ((p = (struct stNo *) malloc(sizeof(struct stNo))) == NULL)
return NULL;
else {
p->prox = NULL;
return p;
}
}
void insereLista(struct stNo **list){
struct stNo *p,*q;
int n,idade1;
char name[50],email1[60],celular1[11];
fflush(stdin);
printf("\nDigite o valor do nó:");
scanf("%i",&n);
fflush(stdin);
printf("\nDigite o nome:");
gets(name);
fflush(stdin);
printf("\nDigite o email:");
gets(email1);
fflush(stdin);
printf("\nDigite o celular:");
gets(celular1);
fflush(stdin);
printf("\nDigite o valor da idade:");
scanf("%i",&idade1);
fflush(stdin);
if(*list==NULL){ //lista vazia
p = cria_no();
*list = p;
p->ant = NULL;
p->prox = NULL;
p->info = n;
p->idade = idade1;
strcpy(p->nome,name);
strcpy(p->email,email1);
strcpy(p->celular,celular1);
}else{
p=*list;
while(p->prox!=NULL)
p=p->prox;
q = cria_no();
p->prox = q;
q->prox = NULL;
q->ant = p;
q->info = n;
q->idade = idade1;
strcpy(q->nome,name);
strcpy(q->email,email1);
strcpy(q->celular,celular1);
};
};
void mostraLista(struct stNo **list){
struct stNo *p;
if(*list!=NULL){
p=*list;
while(p->prox!=NULL){
printf(" %i->",p->info);
printf(" %s->",p->nome);
p = p->prox;
};
printf(" %i->",p->info);
printf(" %s",p->nome);
}
else printf("\nLista Vazia");
};
void visualizarLista(struct stNo **list){
struct stNo *p;
int n;
char compNome[50];
printf("\nDigite o nome: ");
fflush(stdin);
gets(compNome);
if(*list!=NULL){
p=*list;
while(p->prox!=NULL && strcmp(compNome,p->nome) !=0 ){
p = p->prox;
};
if(strcmp(compNome,p->nome)==0){
printf("\nCódigo: %d",p->info);
printf("\nNome: %s",p->nome);
printf("\nEmail: %d",p->email);
printf("\nCelular: %s",p->celular);
printf("\nIdade: %d",p->idade);
};
}
else printf("\nLista Vazia");
};
void alterarLista(struct stNo **list){
struct stNo *p;
int n,idade1;
char name[50],email1[60],celular1[11];
char compNome[50];
printf("\nDigite o nome que sera alterado: ");
fflush(stdin);
gets(compNome);
if(*list!=NULL){
p=*list;
while(p->prox!=NULL && strcmp(compNome,p->nome) !=0 ){
p = p->prox;
};
if(strcmp(compNome,p->nome)==0){
printf("\nDigite o novo valor do nó:");
scanf("%i",&n);
fflush(stdin);
printf("\nDigite o novo nome:");
gets(name);
fflush(stdin);
printf("\nDigite o novo email:");
gets(email1);
fflush(stdin);
printf("\nDigite o novo celular:");
gets(celular1);
fflush(stdin);
printf("\nDigite o novo valor da idade:");
scanf("%i",&idade1);
fflush(stdin);
p->info = n;
p->idade = idade1;
strcpy(p->nome,name);
strcpy(p->email,email1);
strcpy(p->celular,celular1);
printf("\nNovos dados do usuario: ");
printf("\nCódigo: %d",p->info);
printf("\nNome: %s",p->nome);
printf("\nEmail: %d",p->email);
printf("\nCelular: %s",p->celular);
printf("\nIdade: %d",p->idade);
};
}
else printf("\nLista Vazia");
};
void excluirQualquer(struct stNo **list){
struct stNo *p;
char compNome[50];
p = *list;
if(*list==NULL){
printf("\nLista Vazia");
}else{
printf("\nDigite o nome: ");
fflush(stdin);
gets(compNome);
if(*list!=NULL) //lista vazia
p = *list;
while(p->prox!=NULL && strcmp(compNome,p->nome) !=0){
p=p->prox;
}
if(p->ant == NULL){
*list = p->prox;
}else{
p->ant->prox = p->prox;
}
if(p->prox != NULL)
p->prox->ant = p->ant;
free(p);
printf("\nExcluido com sucesso. ");
}
};
main(){
setlocale(LC_ALL,"Portuguese");
struct stNo *lista;
int menu;
lista = NULL; // inicializando a lista vazia
do{
system("cls");
printf("\n");
mostraLista(&lista);
printf("\n\n");
printf("[1-Inserir] ");
printf("[2-Visualizar] ");
printf("[3-Alterar] ");
printf("[4-Excluir] ");
printf("[5-Sair] ");
printf("Opção:");
scanf("%i",&menu);
switch(menu){
case 1 : insereLista(&lista);
break;
case 2 : visualizarLista(&lista);
break;
case 3 : alterarLista(&lista);
break;
case 4 : excluirQualquer(&lista);
break;
case 5 : printf("\nSaindo...");
break;
default: printf("\nCódigo Inválido");
}
printf("\n");system("pause");
}while(menu!=5);
}
you haven’t even tried to implement the logic of saving. Tip: scrolls through the list to find out how many elements there are, saves the amount of elements at the beginning of the file to make it easier to read when loading the data in a future execution of the program.
– vmp