Galera, terminei de fazer um projeto de um programa para efetuar cadastro de clientes, e dps exibi-los, salvanod em arquivo, porém, estou com um pequeno problema: Após efetuar os 3 cadastros do vetor quando volto ao menu, e coloco pra ele pesquisar, ele dá um erro e fecha o programa, já tentei de várias maneiras pra descobrir esse erro, mas não conseguir, além por favor pode me dizer onde é que estou errando ?
Vou postar meu código aqui, se puderem me diz onde tá o erro..
Obrigado !
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include <windows.h>
/*-----------------Cores do DOS-------------------------------------------------
Descrição: Procedimento para definição de Cores do DOS
------------------------------------------------------------------------------*/
enum DOS_COLORS {
BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN,
LIGHT_GRAY, DARK_GRAY, LIGHT_BLUE, LIGHT_GREEN, LIGHT_CYAN,
LIGHT_RED, LIGHT_MAGENTA, YELLOW, WHITE };
/*----------------------------------------------------------------------------*/
/*-----------------Cores das letras---------------------------------------------
Descrição: Procedimento para inserir cores de letras no programa
------------------------------------------------------------------------------*/
void textcolor (DOS_COLORS iColor)
{
HANDLE hl = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO bufferInfo;
BOOL b = GetConsoleScreenBufferInfo(hl, &bufferInfo);
bufferInfo.wAttributes &= 0x00F0;
SetConsoleTextAttribute (hl, bufferInfo.wAttributes |= iColor);
}
// REGISTRO DOS DADOS
struct cad{
char nome[20];
char end[22];
char ecivil[22];
int numcliente[2];
char fone[10];
char rg[22];
char data[10];
char cic[22];
char dep[3];
};
//DECLARAÇAO DAS VARIAVEIS
//------------------------------------------------------------------------------
int op;
struct cad dados[3];
int cont,pesq;
//int decisao;
FILE *dfunc;
void abre_arquivo (void)
{
dfunc=fopen("funcionarios.dat","a+b");
}
void mostrar()
{
printf("\n\tCADASTRO No. %d",*dados[cont].numcliente);
printf("\n________________________________");
printf("\n");
printf("\n\t NOME_________________- %s", dados[cont].nome);
printf("\n\t ENDERECO_____________- %s", dados[cont].end);
printf("\n\t TEL:_________________- %s", dados[cont].fone);
printf("\n\t ESTADO CIVIL_________- %s", dados[cont].ecivil);
printf("\n\t RG___________________- %s", dados[cont].rg);
printf("\n\t CIC__________________- %s", dados[cont].cic);
printf("\n\t DATA DE NASCIMENTO___- %s", dados[cont].data);
printf("\n\t NUMERO DEPENDENTES___- %s", dados[cont].dep);
printf("\n");
}
void procurar (int cod)
{
rewind(dfunc);
do{
fread(&dados[cont],sizeof(struct cad),1,dfunc);
if (cod==*dados[cont].numcliente){mostrar();}
}while (feof(dfunc)==0&&cod!=*dados[cont].numcliente);
if (cod!=*dados[cont].numcliente)
printf("\n\n CADASTRO não ENCONTRADO");
}
void cadastrar (void)
{
for (cont=0;cont<3;cont++){ cont+1;
printf("\n\n\n\t\t\t ADICIONANDO REGISTRO.. ");
printf("\n\n\nCADASTRE O CLIENTE : \n");
printf("\n\n\nNumero de cadastro_____________________ : ");
scanf("%d",&dados[cont].numcliente);
printf("\nInsira o nome__________________________ : ");
scanf("%s",&dados[cont].nome);
printf("\nInsira o Endereco______________________ : ");
scanf("%s",&dados[cont].end);
printf("\nInsira o Telefone______________________ : ");
scanf("%s",&dados[cont].fone);
printf("\nInsira o Estado civil__________________ : ");
scanf("%s",&dados[cont].ecivil);
printf("\nInsira o RG :___________________________: ");
scanf("%s",&dados[cont].rg);
printf("\nInsira o CIC___________________________ : ");
scanf("%s",&dados[cont].cic);
printf("\nInsira a data de nascimento____________ : ");
scanf("%s",&dados[cont].data);
printf("\nInsira a quantidade de dependentes____ : ");
scanf("%s",&dados[cont].dep);
fseek(dfunc,0,SEEK_END);
fwrite(&dados[cont],sizeof(struct cad),1,dfunc);
printf("\n\t::::::CADASTRO REALIZADO COM SUCESSO::::::");
}
printf("\n\n");
printf("\n\n");
}
void consultar (void)
{
int t_codigo, continuar;
do{
system("cls");
printf("\n\t\t PESQUISA DE DADOS");
printf("\n\n\n "" ] - DIGITE A OPCAO DESEJADA " );printf("\r");printf(" [ ");printf("");
scanf("%d",&t_codigo);
procurar(t_codigo);
printf("\n\n deseja consultar outro (1-sim/2-não): ");
scanf("%d",&continuar);
}while (continuar==1);
return;
}
int main ()
{
int op;
abre_arquivo();
do
{
system ("cls");
textcolor(YELLOW);
printf("\n\t\t\t:::::::::::FIRESTORM:::::::::::::");
printf("\n________________________________________________________________________________");
textcolor(LIGHT_CYAN);
printf("\n");
printf("\n");
printf("\n\t\t <<<<<<<<MENU DE CADASTRO>>>>>>>>");
printf("\n");
printf("\n\t\t [ 1 ] - ADICIONAR UM NOVO CADASTRO ");
printf("\n\t\t [ 2 ] - PESQUISAR CADASTROS ");
printf("\n\t\t [ 3 ] - SAIR ");
printf("\n");
printf("\n");
printf(" "" ] - DIGITE A OPCAO DESEJADA " );printf("\r");printf(" [ ");printf("");
scanf("%d",&op);
if(op!=3)
{
switch (op)
{
case 1: cadastrar();break;
case 2: consultar();break;
default : printf("\n\t\t OPCAO INVALIDA");getch();
}
}
}while (op!=3);
return(0);
}
Pergunta
L0mbra
Galera, terminei de fazer um projeto de um programa para efetuar cadastro de clientes, e dps exibi-los, salvanod em arquivo, porém, estou com um pequeno problema: Após efetuar os 3 cadastros do vetor quando volto ao menu, e coloco pra ele pesquisar, ele dá um erro e fecha o programa, já tentei de várias maneiras pra descobrir esse erro, mas não conseguir, além por favor pode me dizer onde é que estou errando ?
Vou postar meu código aqui, se puderem me diz onde tá o erro..
Obrigado !
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.