Ir ao conteúdo
  • Cadastre-se

C Programa de Struct e arquivo.


Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!