Eia galera, preciso de uma ajuda de vcs numa parada que não estou conseguindo descobrir qual o erro, to fazendo a agenda que vai estar ai embaixo, as funções que ela precisa ter é inserir,pesquisar e listar que estão funcionando. A única coisa que não consigo descobrir é como colocar um contador para uma quantidade máxima de registros digamos que seja 5 por exemplo, já coloque um if com um contatdor só que quando passa os 5 o else que seria um printf escrito agenda cheia sisplemente não aparece. Ai não sei mais o que fazer, se vcs tiverem uma ideia dica para ajudar, agradeço.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
struct registro
{
char n[50];
int idade;
char telefone[50];
char email[50];
};
struct registro contato;
FILE *arq;
void inserir(){
arq = fopen("Agenda.txt","ab");
if(arq==NULL)
{
printf("Erro na abertura do arquivo");
system("pause");
}
system("cls");
printf("\n Nome: ");
fflush(stdin);
gets(contato.n);
printf("\n Idade : ");
scanf("%d", &contato.idade);
printf("\n Telefone :");
fflush(stdin);
gets(contato.telefone);
printf("\n E-Mail : ");
fflush(stdin);
gets(contato.email);
fwrite(&contato,sizeof(registro),1,arq);
fclose(arq);
}
void pesquisar()
{
char pesquisa[50];
int p=0;
system("cls");
arq = fopen("Agenda.txt","rb");
if(arq==NULL)
{
printf("Erro na abertura do arquivo");
system("pause");
}
else
{
printf("\n Digite o nome a ser pesquisado: ");
scanf("%s",&pesquisa);
printf("\n**************************************************\n");
while (fread(&contato, sizeof(registro), 1, arq))
if (strcmp(pesquisa,contato.n )==0)
{
printf("\n Nome: %s",contato.n);
printf("\n Idade : %d",contato.idade);
printf("\n Telefone : %s",contato.telefone);
printf("\n E-Mail : %s\n",contato.email);
p=1;
}
if(p==0)
printf("\nNome nao encontrado!\n\n");
printf("\n");
fclose(arq);
system("pause");
}
}
void listar(){
system("cls");
arq = fopen("Agenda.txt","rb");
if(arq==NULL)
{
printf("Erro na abertura do arquivo");
system("pause");
}
while(fread(&contato,sizeof(registro),1,arq)==1)
{
printf("\n=========================================\n");
printf("\n Nome: %s",contato.n);
printf("\n Idade : %d",contato.idade);
printf("\n Telefone : %s",contato.telefone);
printf("\n E-Mail : %s\n",contato.email);
}
printf("\n");
fclose(arq);
system("pause");
}
int main()
{
int op;
do
{
system("cls");
printf("\n AGENDA ELETRONICA \n");
printf("\n [1] - Adicionar");
printf("\n [2] - Pesquisar");
printf("\n [3] - Exibir");
printf("\n [0] - Sair\n\n");
printf(" Opcao: ");
scanf("%d", &op);
switch(op)
{
case 1:
inserir();
break;
case 2:
pesquisar();
break;
case 3:
listar();
break;
case 0:
printf("\nFechado Agenda.....\n");
break;
default:
printf("Opção Invalida");
break;
}
}while(op!=0);
fclose(arq);
}