#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <string.h>
typedef struct
{
int sequencial;
char nome[50];
char email[30];
long int telefone;
} ContatoProfissional;
ContatoProfissional Contato;
int contSequencial = 1;
void menu();
void inserirContato();
void exibirContatosCadastrados();
int main()
{
int opcao;
do
{
system("cls");
menu();
scanf("%d", &opcao);
printf("\n");
switch (opcao)
{
case 1:
inserirContato();
break;
case 2:
exibirContatosCadastrados();
break;
default:
printf("Opcao invalida,digite novamente.");
break;
}
} while (opcao != 0);
}
void menu()
{
printf("1 - Inserir um contato.\n");
printf("2 - Exibir os contatos cadastrados.\n");
printf("3 - Alteracao de dados de um contato.\n");
printf("4 - Excluir um contato.\n");
printf("5 - Consultar os dados de um determinado contato.\n");
printf("0 - Sair.\n");
printf(">> ");
}
void inserirContato()
{
FILE *arquivoContatos = fopen("contatos.dat", "ab");
if (arquivoContatos)
{
getchar();
printf("Digite o nome do contato: ");
fgets(Contato.nome, 50, stdin);
printf("Digite o email: ");
fgets(Contato.email, 30, stdin);
printf("Digite o telefone (00 90000 0000): ");
scanf("%ld", &Contato.telefone);
Contato.sequencial = contSequencial;
contSequencial++;
fwrite(&Contato, sizeof(Contato), 1, arquivoContatos);
fclose(arquivoContatos);
}
else
{
printf("ERRO AO ABRIR O ARQUIVO.\n");
}
}
void exibirContatosCadastrados()
{
ContatoProfissional LerContatos;
FILE *arquivoContatos = fopen("contatos.dat", "rb");
if (arquivoContatos)
{
while (fread(&LerContatos, sizeof(Contato), 2, arquivoContatos))
{
printf("Nome: %sEmail: %sTelefone: %ld\nSequencia: %d", LerContatos.nome, LerContatos.email, LerContatos.telefone, LerContatos.sequencial);
}
fclose(arquivoContatos);
}
else
{
printf("ERRO AO ABRIR O ARQUIVO.\n");
}
}