humberto Postado Novembro 21, 2004 Denunciar Share Postado Novembro 21, 2004 (editado) aí galera beleza? tipo.....preciso de uma agenda q cadastre nome e telefone.... e tem q ter o ID ...q vai ser um contador não é?.... já tenho esse código todo aqui....mas tipo.....queria q dessem uma olhada na função Consultar..... q tah aparecendo na tela muito bagunçado... e se alguém souber como, criar a funcao pra alterar, e uma pra exlcluir valeu ae aqui está o código: (clrscr() tah como comentario porque n acho a biblioteca dele no dev C++) #include <stdio.h> #include <ctype.h> #include <stdlib.h> #include <string.h> #include <conio.h> #define TAM 100 struct contato { char nome[50]; char telefone[30]; int id; } tcontato[TAM]; void iniciar(void), cadastrar(void); void salvar(void); void consultar(void); void main(void) { char opcao[30]; int c; iniciar(); //clrscr(); for(;;) { do { //clrscr(); printf("\n 1. >>> Cadastrar\n"); printf(" 2. >>> Consultar\n"); printf(" 3. >>>\n"); printf(" 4. >>> Salvar\n"); printf(" 5. >>> Sair\n"); printf("\n Entre com sua escolha: "); gets(opcao); c = atoi(opcao); } while(c<0 || c>5); switch(c) { case 1: cadastrar(); break; case 2: consultar(); break; case 3: break; case 4: salvar(); break; case 5: exit(0); } } } /* Inicializa a lista. */ void iniciar(void) { register int t; for(t=0; t<TAM; t++) *tcontato[t].nome = '\0'; /* um nome de comprimento zero significa vazio */ } /* poe os nomes na lista */ void cadastrar(void) { register int i; for(i=0; i<TAM; i++) if(!*tcontato[i].nome) break; if(i==TAM) { //clrscr(); printf("\n Lista cheia\n"); getch(); return; } tcontato[i].id = tcontato[i].id + 1; printf("\n Nome: "); gets(tcontato[i].nome); printf("\n Telefone: "); gets(tcontato[i].telefone); printf("\nCadastrado com sucesso!!!"); getch(); } /* Salva a lista. */ void salvar(void) { FILE *arq; register int i; if((arq=fopen("agenda.txt", "wt"))==NULL) { //clrscr(); printf(" O arquivo não pode ser aberto\n"); getch(); return; } for(i=0; i<TAM; i++) if(*tcontato[i].nome) if(fwrite(&tcontato[i], sizeof(struct contato), 1, arq)!=1) { //clrscr(); printf(" Erro de gravaçao no arquivo\n"); getch(); } } // Consulta o arquivo void consultar(void) { FILE *arq; register int i; arq = fopen("agenda.txt", "r"); if(arq) { for(i=0; i<TAM; i++){ while(tcontato[i].id!=0){ if(fread(&tcontato[i],sizeof(struct contato), 1, arq)!=1) printf("%d-\n",tcontato[i].id); break; } } for(i=0; i<TAM; i++) if(*tcontato[i].nome) if(fread(&tcontato[i],sizeof(struct contato), 1, arq)!=1) printf("%s\n",tcontato[i].nome); for(i=0; i<TAM; i++) if(*tcontato[i].telefone) if(fread(&tcontato[i],sizeof(struct contato), 1, arq)!=1) printf("%s\n",tcontato[i].telefone); fclose(arq); } else printf("ERRO na abertura do arquivo."); } Editado Maio 29, 2023 por humberto Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Novembro 21, 2004 Denunciar Share Postado Novembro 21, 2004 Para alterar e excluir você pode criar um outro arquivo (auxiliar) e "jogar" tudo do arquivo original para este outro. No caso de alterar quando o programa chegar ao registro que deve ser alterado, ao invés de utilizar as informações do arquivo original, ele usará as novas informações inseridas. No caso de excluir, basta pular o registro que deve ser alterado. Ambas as rotinas serão muito parecidas. Ao final, basta apagar o arquivo original e renomear o auxiliar para o nome do original (ou seja, ele passa a ser o original, porém modificado).Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 renan_doidera Postado Novembro 22, 2004 Denunciar Share Postado Novembro 22, 2004 Esse programa tá dando erro de compilação aqui...Falows Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
humberto
aí galera beleza? tipo.....preciso de uma agenda q cadastre nome e telefone....
e tem q ter o ID ...q vai ser um contador não é?....
já tenho esse código todo aqui....mas tipo.....queria q dessem uma olhada na função Consultar..... q tah aparecendo na tela muito bagunçado...
e se alguém souber como, criar a funcao pra alterar, e uma pra exlcluir
valeu ae
aqui está o código: (clrscr() tah como comentario porque n acho a biblioteca dele no dev C++)
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.