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

Ajuda Agenda C


Felipe Weber

Pergunta

Olá pessoal esta é a minha primeira vez aqui, preciso de uma ajudinha, primeiramente vou detalhar o que é o meu código e depois a minha dúvida.

Fiz quase tudo, meu maior problema é aplicar o item 2 REMOVER REGISTRO, porém não sei por onde começar!
Segue o meu Código e me desculpem o tamanho dele :\
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
const int TAM_BUFFER = 255;// quantidade de caracteres a serem lidos no buffer de cada vez
char arq[] = "Agenda.txt";
FILE *ptr_arq;
typedef struct{
char Rua[50];
char Numero[30];
char CEP[30];
char Cidade[30];
char Estado[30];
}Endereco;
typedef struct{
char Nome[50];
char Telefone[20];
Endereco local;
char Email[50];
}Agenda;
Agenda add;
int CriarMenu();
Agenda InserirRegistro();
Agenda RemoverRegistro();
Agenda ListarRegistro();
Agenda BuscarRegistro();
main(){
switch(CriarMenu()){
case 1:{
printf("\nInserir Registro\n");
InserirRegistro();
return main();
}
case 2:{
printf("\nRemover Registro\n");
RemoverRegistro();
return main();
}
case 3:{
printf("\nListar Registro\n");
ListarRegistro( );
return main();
}
case 4:{
printf("\nBuscar Registro\n");
BuscarRegistro();
return main();
}
case 5:{
printf("\nSair\n");
break;
}
default:{
printf("\nCodigo errado digite novamente");
return main();
}
}
}
int CriarMenu(){
int op;
printf("\nMenu da agenda\n1) Inserir Registro\n2) Remover Registro\n3) Listar Todos Registros\n4) Buscar por um Registro\n5) Sair\n");
printf("\nDigite sua opcao: ");
scanf("%d", &op);
if((isalpha(op))!= 0){
printf("Erro ");
}
return op;
}
Agenda InserirRegistro(){
ptr_arq = fopen(arq, "a");
printf("Digite o Nome : ");
scanf(" %[^\n]", add.Nome);
fprintf(ptr_arq, "%s\t", add.Nome);
printf("Informe o celular : ");
scanf(" %[^\n]", add.Telefone);
fprintf(ptr_arq, "%s\t", add.Telefone);
printf("Digite o nome da Rua : ");
scanf(" %[^\n]", add.local.Rua);
fprintf(ptr_arq, "%s\t", add.local.Rua);
printf("Informe o numero da rua : ");
scanf(" %[^\n]", add.local.Numero);
fprintf(ptr_arq, "%s\t", add.local.Numero);
printf("Informe o CEP : ");
scanf(" %[^\n]", add.local.CEP);
fprintf(ptr_arq, "%s\t", add.local.CEP);
printf("Informe sua Cidade : ");
scanf(" %[^\n]", add.local.Cidade);
fprintf(ptr_arq, "%s\t", add.local.Cidade);
printf("Informe o Estado : ");
scanf(" %[^\n]", add.local.Estado);
fprintf(ptr_arq, "%s\t", add.local.Estado);
printf("Informe o Email : ");
scanf(" %[^\n]", add.Email);
fprintf(ptr_arq, "%s\n", add.Email);
fclose(ptr_arq);
}
Agenda RemoverRegistro(){
fclose(ptr_arq);
}
Agenda ListarRegistro( ){
ptr_arq = fopen(arq, "r"); // abre o arquivo
char x; // variavel que ira receber os caracteres do arquivo
printf("Nome\t\tTelefone\t\tRua\t\tNumero\t\tCEP\t\tCidade\t\tEstado\t\tEmail\n");
while((x=fgetc(ptr_arq)) != EOF){ // le caracter pro caracter do arquivo ate encontrar o final do arquivo
printf("%c", x); // imprime caracter por caracter
}
fclose(ptr_arq); // fecha arquivo
}
Agenda BuscarRegistro(){
char procura[50]; // variavel que ira receber o nome para pesquisa
char buffer[TAM_BUFFER]; // variavel que ira receber todo conteudo do arquivo
ptr_arq = fopen(arq, "r"); // abre o arquivo
printf("Digite o nome da busca : ");
scanf(" %[^\n]", procura);
while(fgets(buffer, TAM_BUFFER, ptr_arq)){ // ele ira ler todo o conteudo e ira colocar no buffer
if(strstr(buffer,procura) ){ // ve se o valor que tem em procura tem dentro de buffer
printf("Nome\t\tTelefone\t\tRua\t\tNumero\t\tCEP\t\tCidade\t\tEstado\t\tEmail\n");
printf("%s\n", buffer);
}
}
if(add.Nome!=procura){
printf("O nome %s não esta cadastrado na agenda.", procura);
}
fclose(ptr_arq); // fecha o arquivo
}
Editado por Felipe Weber
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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...