Ir ao conteúdo

Posts recomendados

Postado

Eu estou fazendo esse exercício, estou aprendendo struct , arquivo e função.

não sei onde estou errando.

 

"Faça um programa para controle de telefones (Agenda). Para cada pessoa os
seguintes dados devem ser considerados:
Nome
E-mail
Endereço (Rua, número, bairro, cep, cidade, estado)
Telefone (Comercial, celular e residencial)
Data de aniversário
Apresente um menu com as seguintes opções:
1 - Cadastro (Vários)
2 - Consulta por nome
3 - Consulta por email
4 - Exclusão
5 - Alteração
6 - Impressão
OBS.: Utilizar funções e arquivos"

 

 

O  Código esta aqui :https://pastebin.com/aD7YjmYq

  • Curtir 1
Postado

@Jemima Fonseca Passos Você ainda precisa completar algumas partes do código, outras você precisa analisar a usabilidade e a sintaxe, assim como a lógica, segue:

 

1 - Como a variável FILE *f em main não possui  nenhuma utilidade para as funções, não precisa enviar ela para as funções, então deixe apenas as funções sem argumentos. Ex.:

void cadastrar();

 

Declare a variável FILE *f dentro das funções.

 

2 - Para as funções consultnome,email,etc.,  você precisa entender a estrutura usada no salvamento. Assim você pode usar fscanf nas linhas onde você encontra os dados, em consultnome() você precisa receber os dados aonde tem "Nome: xxxxx", e usando: fscanf(f, "%s %s",  buffer, p.nome);  lembrando de que você precisa identificar e contar as linhas aonde tem apenas nome, email, etc.

 

Dica: Observe como é salvo os dados no arquivo.txt e numere as linhas, use um int como contador e feof para trocar de linha.

 

 

  • Curtir 1
  • Amei 1
Postado

Não sei se a chamada da função main() no final de cada função ta certo mas ficou bem estranho e desnecessário,corrijam-me se eu estiver errado mas as funções são empilhadas na pilha de memoria e ao final da execução de cada elas são desempilhadas.
Quanto a parte dos arquivos, você pode usar algo parecido com isso inclusive na parte de busca.
 

void impressao(FILE*f){
    char dados[255];
   	fflush(stdin);
  	f = fopen("arquivo.txt", "r");

    if (f == NULL){
   	 	printf("ERRO! O arquivo não foi aberto!\n");
   	 	exit(1);
    }
    printf("Nome\tEmail\tEndereco\tTelefone\tAniversario\n");
    while(fgets(dados,40,f)!=NULL){
        puts(dados);
    }
   	system("pause");
   	system("cls");
    fclose(f);
}

 

  • Amei 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

Mostrar 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

Mostrar mais  
×
×
  • Criar novo...