Ir para conteúdo
Fórum Script Brasil
  • 0

Erro ao retornar para pesquisa


L0mbra

Pergunta

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);
}

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...