Abcd
#include
FILE *arquivo; char *nomearq="agenda.dat";
struct pessoa{ char nome[40]; char telefone[20]; char endereco[80]; int idade;
};
int Escolhe() { int opcao;
do { printf ("\nMini-agenda\n\n"); printf ("1 - Mostrar um registro\n"); printf ("2 - Mostrar todos os registros\n"); printf ("3 - Incluir um registro\n"); printf ("4 - Apagar o ultimo registro\n"); printf ("5 - Mostrar pessoas mais velhas do que uma certa idade\n"); printf ("6 - Apagar um registro qualquer\n"); printf ("0 - Sair\n\n"); printf ("Opcao:"); scanf("%d",&opcao); } while(opcao6); return opcao;
}
void MostraRegistro() { int reg; struct pessoa umapessoa;
printf ("Digite o número do registro: "); scanf ("%d", ®);
// posiciona o arquivo no registro desejado fseek(arquivo,reg*sizeof(struct pessoa),SEEK_SET);
// le o registro fread(&umapessoa, sizeof(struct pessoa), 1, arquivo);
// se o registro realmente existe, ao executar uma leitura // no arquivo, o indicador de fim de arquivo nao devera // estar setado. Se nao existir, teremos EOF if (feof(arquivo)) { printf("Registro nao existente!\n"); return; } // mostra dados printf ("Nome: %s\n",umapessoa.nome); printf ("Telefone: %s\n",umapessoa.telefone); printf ("Endereco: %s\n",umapessoa.endereco); printf ("Idade: %d\n\n",umapessoa.idade);
}
void MostraTodos() { int reg; struct pessoa umapessoa;
// posiciona o arquivo no inicio fseek(arquivo,0,SEEK_SET);
reg=0; do { // le registro fread(&umapessoa, sizeof(struct pessoa), 1, arquivo);
// se chegou ao fim, para if (feof(arquivo)) break;
// mostra dados printf ("\nRegistro numero: %d\n",reg); printf ("Nome: %s\n",umapessoa.nome); printf ("Telefone: %s\n",umapessoa.telefone); printf ("Endereco: %s\n",umapessoa.endereco); printf ("Idade: