Ir ao conteúdo
  • Cadastre-se

danilosk10

Membro Júnior
  • Posts

    11
  • Cadastrado em

  • Última visita

Reputação

2
  1. Bom Galera, estou tentando fazer um agenda um C já fiz o código quase todo, só que não estou conseguindo criar a função pro usuário excluir algum contato, já procurei no fórum e como ninguém tem o caso semelhante ao meu, resolvi criar um novo tópico. Segue abaixo meu código. #include <stdio.h> #include <string.h> #include <stdlib.h> struct Cadastro{ int num; char nome[100]; char endereco[100]; char email[100]; char data[30]; char tel[10]; }; FILE *arquivo; struct Cadastro C; char menu(){ system ("cls"); printf("______________________________ *** AGENDA ***________________________________\n\n"); printf("1- Cadastrar\n"); printf("2- Listar\n"); printf("3- Buscar\n"); printf("4- Alterar\n"); printf("5- Sair\n\n"); printf("\nOpcao:\n"); system ("color c"); return (getchar()); } /* Buscar Clientes*/ /* A função fread() permite a leitura de um bloco de bytes em arquivos, sendo usadas - preferencialmente - com arquivos binários. */ int busca(int n){ fread(&C, sizeof©, 1, arquivo); while(!feof(arquivo)){ if(C.num==n){ fseek(arquivo, sizeof©, SEEK_CUR); return 1; } fread(&C, sizeof©, 1, arquivo); } return 0; } /*Cadastro de Clientes*/ void cad(){ arquivo = fopen ("agenda.txt", "a+b"); if(arquivo==NULL){ printf("\nErro ao abrir o arquivo \n"); return; } printf("\n\nNumero de Inscricao:"); C.num++; printf("000%d",C.num); printf("\n\nNome:"); fflush(stdin); gets(C.nome); printf("\nData de Nascimento:"); fflush(stdin); gets(C.data); printf("\nEndereco:"); fflush(stdin); gets(C.endereco); printf("\nEmail:"); fflush(stdin); gets(C.email); printf("\nTelefone:"); fflush(stdin); gets(C.tel); fwrite(&C, sizeof©, 1, arquivo); getchar(); fclose(arquivo); } /*Listar*/ /*feof indica o fim do arquivo. ele pode retornar numero diferente de zero se o arquivo tiver chegado no fim caso contrario terona 0 */ void listar(){ int i=0; arquivo= fopen("agenda.txt","rw"); if(arquivo==NULL){ printf("Erro ao abrir o arquivo"); return; } fread(&C, sizeof©, 1, arquivo); printf("\nRelacao de Clientes\n"); while(!feof(arquivo)){ i++; printf("\n"); printf("\nInscricao: %d\nNome: %s\nEndereco: %s\nEmail: %s\nTelefone: %s\nData de Nascimento: %s", C.num, C.nome, C.endereco, C.email, C.tel, C.data); printf("\n"); fread(&C, sizeof©, 1, arquivo); if(feof(arquivo) || (i==20)){ break; getchar(); getchar(); /* A função getchar() lê um caractere e retorna um inteiro que é: o código do caractere, ou o valor -1 que corresponde a fim de ficheiro */ } } fclose(arquivo); } /*Buscar Clientes*/ /*Buscar Clientes procedimento usado para buscar o cliente a partir da inscrição do cliente gerada na hora que começa o cadastro. */ void buscar(){ int insc; arquivo = fopen("agenda.txt","rw"); if(arquivo==NULL){ printf("\nErro ao abrir o arquivo\n"); } printf("\n"); printf("\nDigite o Numero da Inscricao do Cliente\n"); scanf("%d",&insc); /*Busca(insc)*/ /* A função fread() permite a leitura de um bloco de bytes em arquivos, sendo usadas - preferencialmente - com arquivos binários. */ if(busca(insc == 0)) printf("\nNumero de inscricao invalido\n"); else{ fread(&C, sizeof©, 1, arquivo); printf("\nInscricao: %d\n", C.num); printf("Nome: %s\n", C.nome); printf("\nData de Nascimento: %s\n", C.data); printf("Endereco: %s\n", C.endereco); printf("Email: %s\n", C.email); printf("Telefone: %s\n", C.tel); getchar(); getchar(); } fclose(arquivo); } void alterar(){ int i=0; arquivo= fopen("agenda.txt","wb"); if(arquivo==NULL){ printf("Erro ao abrir o arquivo"); return; } printf("\nAlteracao de Cadastro\n"); printf("\n\nNumero de Inscricao:"); scanf("%d",&C.num); //fseek usado para fazer procuras a partir de um ponto determinado //no caso ai a partir da struct arquivo, seek_cur é a ponte correndo do arquivo //ou seja indica que é para percorrer a partir do inicio do arquivo. printf("\n\nNome:"); fflush(stdin); gets(C.nome); printf("\nData de Nascimento:"); fflush(stdin); gets(C.data); printf("\nEndereco:"); fflush(stdin); gets(C.endereco); printf("\nEmail:"); fflush(stdin); gets(C.email); printf("\nTelefone:"); fflush(stdin); gets(C.tel); fseek(arquivo, sizeof©, SEEK_CUR); fwrite(&C, sizeof©, 1, arquivo); fread(&C, sizeof©, 1, arquivo); fclose(arquivo); } //fseek usado para fazer procuras a partir de um ponto determinado //no caso ai a partir da struct arquivo, seek_cur é a ponte correndo do arquivo //ou seja indica que é para percorrer a partir do inicio do arquivo. void sair(){ int i; printf("\nFinalizandoo"); for (i=0; i<35; i++){ _sleep(500); system ("color a"); printf(". "); } exit(1); } //sleep estimula um tempo para o encerramento do programa. main(){ char op; while(op!='s'){ op = menu(); switch(op){ case'1': cad(); break; case'2': listar(); break; case'3': buscar(); break; case'4': alterar(); break; case'5': sair(); break; } getchar(); getchar(); } }
  2. Trabalho com informática a mais de 2 anos, já perdi as contas de quanto gastei se qualificando, vejo muitos clientes reclamando do preço que é caro, que fulaninho faz mais barato, sendo que quando levam pros que fazem mais baratos, eles instalam Windows sem validade, deixam só com Windows instalado sem nenhum programa, resumindo após o serviço lixo os clientes sempre acabam voltando para os que cobram preço justo.
  3. Pode adicionar o SIM+ 4O85 a sua lista também aqui ele nem aparecia a imagem, fiz o que você disse e deu certo valeu pela dica.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...