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

Ajuda ! Codigo em C: ( não identifico o erro) ?


lostgamex

Pergunta

Apresenta erro ao compilar , estou usando o code blocks ?

Help!!!!

/*
Programa de cadastro de usuarios que utilizam serviços de rede.
*/

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<ctype.h>
#include<string.h>

#define QUANTIDADE 50

int inicioLista = 0;

int fimLista = -1;

char caminhoArq[4056] = "clientes.txt";

struct cliente
{
    char idCliente[50];
    char nome[50];
    char endereco [50];
    char telefone [50];
    char login [50];
    char senha [50];
    char email [50];
    char limiteBanda [50];
    char hostname [50];
    char mac [50];
    char ip [50];
    char servico[50];


}lista[QUANTIDADE];

char apresentarMenu()
{
    char escolha = ' ';
    printf("---------------------------------------\n");
    printf("      CADASTRO DOS USUARIOS DA REDE   \n");
    printf("---------------------------------------\n");
    printf("\nEscolha uma das opcoes:\n");
    printf("\n[1] - Inserir Registro\n");
    printf("\n[2] - Apresentar Registros\n");
    printf("\n[6] - Excluir Registro\n");
    printf("\n[7] - Gravar Registros em Arquivo\n");
    printf("\n[8] - Carregar Registros do Arquivo\n");
    printf("\n[9] - Configuracoes\n");
    printf("\n[0] - Sair do programa\n");
    escolha = getch();
    fflush(stdin);
    return(escolha);
}


void inserirRegistro()
{
    // inserção de valores na lista
    system("cls");
    printf("---------------------------------------\n");
    printf("         INSERIR REGISTRO\n");
    printf("---------------------------------------\n");
    char opcao = ' ';
    do
    {
        if((fimLista+1)<QUANTIDADE)
        {
            printf("\nRegistro %d -----------------------------\n", fimLista+1);
            printf("\nId Cliente: \t");
            gets(lista[fimLista+1].idCliente);
            fflush(stdin);
            printf("\nNome Cliente: \t");
            gets(lista[fimLista+1].nome);
            fflush(stdin);
            printf("\nEndereco: \t");
            gets(lista[fimLista+1].endereco);
            fflush(stdin);
            printf("\nTelefone: \t");
            gets(lista[fimLista+1].telefone);
            fflush(stdin);
            printf("\nLogin: \t");
            gets(lista[fimLista+1].login);
            fflush(stdin);
            printf("\nSenha: \t");
            gets(lista[fimLista+1].senha);
            fflush(stdin);
            printf("\nE-mail: \t");
            gets(lista[fimLista+1].email);
            fflush(stdin);
            printf("\nLimite de Banda: \t");
            gets(lista[fimLista+1].limiteBanda);
            fflush(stdin);
            printf("\nHostname: \t");
            gets(lista[fimLista+1].hostname);
            fflush(stdin);
            printf("\nMAC: \t");
            gets(lista[fimLista+1].mac);
            fflush(stdin);
            printf("\nIP: \t");
            gets(lista[fimLista+1].ip);
            fflush(stdin);
            printf("\nServicos: \t");
            gets(lista[fimLista+1].servico);
            fflush(stdin);
            fimLista++;
            do
            {
                printf("\nDeseja inserir outro registro? [S]im ou [N]ao.\n");
                opcao = toupper(getch());
                if((opcao != 'S')&&(opcao != 'N'))
                {
                    printf("\nOpcao invalida!!!\n");
                }
            }
            while((opcao != 'S')&&(opcao != 'N'));

        }
        else
        {
            printf("\nLista Cheia!!!\n");
            opcao = 'N';
        }
    }
    while(opcao != 'N');
    //fim da inserção dos numeros na matriz
    system("pause");
}

void apresentarRegistros()
{
    //inserção de valores na lista
    system("cls");
    printf("---------------------------------------\n");
    printf("          APRESENTAR REGISTROS\n");
    printf("---------------------------------------\n");
    int indiceLista = 0;
    if(fimLista > -1)
    {
        for(indiceLista=0; indiceLista <= fimLista; indiceLista++)
        {
            printf("\n\n--------------------------------------------------");
            printf("\n Id: %s",lista[indiceLista].idCliente);
            printf("\n Nome: %s \n",lista[indiceLista].nome);
            printf("\n Endereco: %s \n",lista[indiceLista].endereco);
            printf("\n Telefone: %s \n",lista[indiceLista].telefone);
            printf("\n Login: %s \n",lista[indiceLista].login);
            printf("\n Senha: %s \n",lista[indiceLista].senha);
            printf("\n E-mail: %s \n",lista[indiceLista].email);
            printf("\n Limite de Banda: %s \n",lista[indiceLista].limiteBanda);
            printf("\n Hostname: %s \n",lista[indiceLista].hostname);
            printf("\n Mac: %s \n",lista[indiceLista].mac);
            printf("\n IP: %s \n",lista[indiceLista].ip);
            printf("\n Servicos: %s \n",lista[indiceLista].servico);
        }
    }
    else
    {
        printf("\nLista vazia!!!\n");
    }
    printf("\n");
    system("pause");
}

void excluirRegistro()
{
    // exclusão de registro da lista
    system("cls");
    printf("---------------------------------------\n");
    printf("           EXCLUIR REGISTRO\n");
    printf("---------------------------------------\n");
    int indiceLista = 0;
    char opcao = ' ';
    do
    {
        if( fimLista > -1 )
        {
            printf("\nDigite o numero de ordem da posicao que deseja excluir\n");
            printf("ou 0 para apagar todos os registros:\n");
            scanf("%d",&indiceLista);
            if(indiceLista == 0)
            {
                for(fimLista; fimLista>= indiceLista; fimLista--)
                {
                    lista[indiceLista].idCliente[0] = '';
                    lista[indiceLista].nome[0] = '';
                    lista[indiceLista].endereco[0] = '';
                    lista[indiceLista].telefone[0] = '';
                    lista[indiceLista].login[0] = '';
                    lista[indiceLista].senha[0] = '';
                    lista[indiceLista].email[0] = '';
                    lista[indiceLista].limiteBanda[0] = '';
                    lista[indiceLista].hostname[0] = '';
                    lista[indiceLista].mac[0] = '';
                    lista[indiceLista].ip[0] = '';
                    lista[indiceLista].servico[0] = '';
                }
                printf("\nTodos os registros apagados com sucesso!!!\n");
                opcao = 'N';
            }
            else
            {
                indiceLista--;
                if(( indiceLista <= fimLista )&&( indiceLista > -1 ))
                {
                    if( indiceLista < fimLista )
                    {
                        for(indiceLista; indiceLista < fimLista; indiceLista++)
                        {
                            strcpy(lista[indiceLista].idCliente,lista[indiceLista+1].idCliente);
                            strcpy(lista[indiceLista].nome,lista[indiceLista+1].nome);
                            strcpy(lista[indiceLista].endereco,lista[indiceLista+1].endereco);
                            strcpy(lista[indiceLista].telefone,lista[indiceLista+1].telefone);
                            strcpy(lista[indiceLista].login,lista[indiceLista+1].login);
                            strcpy(lista[indiceLista].senha,lista[indiceLista+1].senha);
                            strcpy(lista[indiceLista].email,lista[indiceLista+1].email);
                            strcpy(lista[indiceLista].limiteBanda,lista[indiceLista+1].limiteBanda);
                            strcpy(lista[indiceLista].hostname,lista[indiceLista+1].hostname);
                            strcpy(lista[indiceLista].mac,lista[indiceLista+1].mac);
                            strcpy(lista[indiceLista].ip,lista[indiceLista+1].ip);
                            strcpy(lista[indiceLista].servico,lista[indiceLista+1].servico);
                        }
                        lista[indiceLista].idCliente[0] = '';
                        lista[indiceLista].nome[0] = '';
                        lista[indiceLista].endereco[0] = '';
                        lista[indiceLista].telefone[0] = '';
                        lista[indiceLista].login[0] = '';
                        lista[indiceLista].senha[0] = '';
                        lista[indiceLista].email[0] = '';
                        lista[indiceLista].limiteBanda[0] = '';
                        lista[indiceLista].hostname[0] = '';
                        lista[indiceLista].mac[0] = '';
                        lista[indiceLista].ip[0] = '';
                        lista[indiceLista].servico[0] = '';
                        fimLista--;
                    }
                    else
                    {
                        lista[indiceLista].idCliente[0] = '';
                        lista[indiceLista].nome[0] = '';
                        lista[indiceLista].endereco[0] = '';
                        lista[indiceLista].telefone[0] = '';
                        lista[indiceLista].login[0] = '';
                        lista[indiceLista].senha[0] = '';
                        lista[indiceLista].email[0] = '';
                        lista[indiceLista].limiteBanda[0] = '';
                        lista[indiceLista].hostname[0] = '';
                        lista[indiceLista].mac[0] = '';
                        lista[indiceLista].ip[0] = '';
                        lista[indiceLista].servico[0] = '';
                        fimLista--;
                    }
                    printf("\nRegistro excluido com sucesso!!!\n");
                    do
                    {
                        printf("\nDeseja excluir outro registro? [S]im ou [N]ao.\n");
                        opcao = toupper(getch());
                        if((opcao != 'S')&&(opcao != 'N'))
                        {
                            printf("\nOpcao invalida!!!\n");
                        }
                    }
                    while((opcao != 'S')&&(opcao != 'N'));
                }
                else
                {
                    printf("\nRegistro inexistente!!!\n");
                    system("pause");
                }
            }
        }
        else
        {
            printf("\nLista vazia!!!\n");
            opcao = 'N';
        }
    }
    while(opcao != 'N');
    system("pause");
}

void gravarRegistrosArquivo()
{
    system("cls");
    printf("---------------------------------------\n");
    printf("      GRAVAR REGISTROS EM ARQUIVO\n");
    printf("---------------------------------------\n");
    int indiceLista = 0;
    FILE *ptrArq;
    if(fimLista > -1)
    {
        char temp[4096];
        ptrArq = fopen(caminhoArq,"w");
        if(!ptrArq)
        {
            printf("\nErro na abertura do arquivo! Finalizando o programa!\n");
            system("pause");
            exit(0);
        }

        printf("\nGravando");
        for(indiceLista; indiceLista <= fimLista; indiceLista++)
        {
            sprintf(temp,"%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\r\n",
                    lista[indiceLista].idCliente,
                    lista[indiceLista].nome,
                    lista[indiceLista].endereco,
                    lista[indiceLista].telefone,
                    lista[indiceLista].login,
                    lista[indiceLista].senha,
                    lista[indiceLista].email,
                    lista[indiceLista].limiteBanda,
                    lista[indiceLista].hostname,
                    lista[indiceLista].mac,
                    lista[indiceLista].ip,
                    lista[indiceLista].servico);
            fputs(temp,ptrArq);
            printf(".");
        }
        fclose(ptrArq);
    }
    else
    {
        ptrArq = fopen(caminhoArq,"w");
        if(!ptrArq)
        {
            printf("\nErro na abertura do arquivo! Finalizando o programa!\n");
            system("pause");
            exit(0);
        }
        fclose(ptrArq);
    }
    printf("\n");
    system("pause");
}

void carregarRegistrosArquivo()
{
    system("cls");
    if( fimLista > -1 )
    {
        printf("---------------------------------------\n");
        printf("    CARREGAR REGISTROS DO ARQUIVO\n");
        printf("---------------------------------------\n");
        for(fimLista; fimLista>= inicioLista; fimLista--)
        {
            lista[fimLista].idCliente[0] = '';
            lista[fimLista].nome[0] = '';
            lista[fimLista].endereco[0] = '';
            lista[fimLista].telefone[0] = '';
            lista[fimLista].login[0] = '';
            lista[fimLista].senha[0] = '';
            lista[fimLista].email[0] = '';
            lista[fimLista].limiteBanda[0] = '';
            lista[fimLista].hostname[0] = '';
            lista[fimLista].mac[0] = '';
            lista[fimLista].ip[0] = '';
            lista[fimLista].servico[0] = '';
        }
    }
    int ind;
    FILE *ptrArq;
    char temp[4096];
    ptrArq = fopen(caminhoArq,"r");
    if(!ptrArq)
    {
        ptrArq = fopen(caminhoArq,"clientes.txt");
        if(!ptrArq)
        {
            printf("\nErro na abertura do arquivo! Finalizando o programa!\n");
            system("pause");
            exit(0);
        }
    }

    printf("\n Carregando registros!");
    while( !feof(ptrArq) )
    {
        ind = 0;
        temp[ind] = fgetc(ptrArq);
        while(( temp[ind] != ',' )&&( temp[ind] != EOF ))
        {
            ind++;
            temp[ind] = fgetc(ptrArq);
        }

        if( temp[ind] == ',' )
        {
            temp[ind] = '';
            strcpy(lista[fimLista+1].idCliente,temp);
        }

        ind = 0;
        temp[ind] = fgetc(ptrArq);
        while(( temp[ind] != ',' )&&( temp[ind] != EOF ))
        {
            ind++;
            temp[ind] = fgetc(ptrArq);
        }

        if( temp[ind] == ',' )
        {
            temp[ind] = '';
            strcpy(lista[fimLista+1].nome,temp);
        }

        ind = 0;
        temp[ind] = fgetc(ptrArq);
        while(( temp[ind] != ',' )&&( temp[ind] != EOF ))
        {
            ind++;
            temp[ind] = fgetc(ptrArq);
        }

        if( temp[ind] == ',' )
        {
            temp[ind] = '';
            strcpy(lista[fimLista+1].endereco,temp);
        }

        ind = 0;
        temp[ind] = fgetc(ptrArq);
        while(( temp[ind] != ',' )&&( temp[ind] != EOF ))
        {
            ind++;
            temp[ind] = fgetc(ptrArq);
        }

        if( temp[ind] == ',' )
        {
            temp[ind] = '';
            strcpy(lista[fimLista+1].telefone,temp);
        }

        ind = 0;
        temp[ind] = fgetc(ptrArq);
        while(( temp[ind] != ',' )&&( temp[ind] != EOF ))
        {
            ind++;
            temp[ind] = fgetc(ptrArq);
        }

        if( temp[ind] == ',' )
        {
            temp[ind] = '';
            strcpy(lista[fimLista+1].login,temp);
        }

        ind = 0;
        temp[ind] = fgetc(ptrArq);
        while(( temp[ind] != ',' )&&( temp[ind] != EOF ))
        {
            ind++;
            temp[ind] = fgetc(ptrArq);
        }

        if( temp[ind] == ',' )
        {
            temp[ind] = '';
            strcpy(lista[fimLista+1].senha,temp);
        }

        ind = 0;
        temp[ind] = fgetc(ptrArq);
        while(( temp[ind] != ',' )&&( temp[ind] != EOF ))
        {
            ind++;
            temp[ind] = fgetc(ptrArq);
        }

        if( temp[ind] == ',' )
        {
            temp[ind] = '';
            strcpy(lista[fimLista+1].email,temp);
        }

        ind = 0;
        temp[ind] = fgetc(ptrArq);
        while(( temp[ind] != ',' )&&( temp[ind] != EOF ))
        {
            ind++;
            temp[ind] = fgetc(ptrArq);
        }

        if( temp[ind] == ',' )
        {
            temp[ind] = '';
            strcpy(lista[fimLista+1].limiteBanda,temp);
        }

        ind = 0;
        temp[ind] = fgetc(ptrArq);
        while(( temp[ind] != ',' )&&( temp[ind] != EOF ))
        {
            ind++;
            temp[ind] = fgetc(ptrArq);
        }

        if( temp[ind] == ',' )
        {
            temp[ind] = '';
            strcpy(lista[fimLista+1].hostname,temp);
        }

        ind = 0;
        temp[ind] = fgetc(ptrArq);
        while(( temp[ind] != ',' )&&( temp[ind] != EOF ))
        {
            ind++;
            temp[ind] = fgetc(ptrArq);
        }

        if( temp[ind] == ',' )
        {
            temp[ind] = '';
            strcpy(lista[fimLista+1].mac,temp);
        }

        ind = 0;
        temp[ind] = fgetc(ptrArq);
        while(( temp[ind] != ',' )&&( temp[ind] != EOF ))
        {
            ind++;
            temp[ind] = fgetc(ptrArq);
        }

        if( temp[ind] == ',' )
        {
            temp[ind] = '';
            strcpy(lista[fimLista+1].ip,temp);
        }

        ind = 0;
        temp[ind] = fgetc(ptrArq);
        while(( temp[ind] != ',' )&&( temp[ind] != EOF ))
        {
            ind++;
            temp[ind] = fgetc(ptrArq);
        }

        if( temp[ind] == '\n' )
        {
            temp[ind] = '';
            strcpy(lista[fimLista+1].servico,temp);
            fimLista++;
            printf(".");
        }
    }
    fclose(ptrArq);
    printf("\n");
    system("pause");
}

void manterConfiguracoes()
{
    // mantem configuracoes gerais do programa
    system("cls");
    printf("---------------------------------------\n");
    printf("           CONFIGURACOES\n");
    printf("---------------------------------------\n");
    char opc = ' ';
    printf("\nEscolha uma das opcoes:\n");
    printf("\n[1] - Alterar Caminho / Nome Arquivo\n");
    opc = getch();
    fflush(stdin);
    switch(opc)
    {
        case '1': alterarCaminhoArquivo();
                  break;

        default:  system("cls");
                  printf("\nOpcao invalida!!!\n");
                  system("pause");
    }
}

void alterarCaminhoArquivo()
{
    // altera o cmanho e/ou nome do arquivo
    system("cls");
    printf("---------------------------------------\n");
    printf("    ALTERAR CAMINHO / NOME ARQUIVO\n");
    printf("---------------------------------------\n");
    printf("\nDigite o camnho/ nome do arquivo ou digite X para voltar às configuracoes originais:\n");
    scanf("%s",caminhoArq);
    fflush(stdin);
    if(!(strcmp(caminhoArq,"x")))
    {
        strcpy(caminhoArq,"clientes.txt");
        printf("\nValor padrão restaurado!\n");
    }
    else
    {
        printf("\nCaminho e/ou nome de arquivo alterados!\n");
    }
    system("pause");
}

int main()
{
    char opcao = ' ';
    carregarRegistrosArquivo();
    do
    {
        system("cls");
        opcao = apresentarMenu();
        switch(opcao)
        {
            case '1': inserirRegistro();
                      break;

            case '2': apresentarRegistros();
                      break;

            case '6': excluirRegistro();
                      break;

            case '7': gravarRegistrosArquivo();
                      break;

            case '8': carregarRegistrosArquivo();
                      break;

            case '9': manterConfiguracoes();
                      break;

            case '0': system("cls");
                      gravarRegistrosArquivo();
                      printf("\nSaindo do programa...\n");
                      system("pause");
                      break;

            default:  system("cls");
                      printf("\nOpcao invalida!!!\n");
                      system("pause");
                      break;
        }

    }
    while(opcao != '0');
    return 0;
}

Editado por lostgamex
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

É ficou meio dificil de analisar o código assim.

Para ajudar, informe o erro gerado pelo code blocks e declare suas funções APÓS a função main, ou crire um cabeçalho separado para isso. Senão, seu código fica "sujo" , fica meio ruim de achar erros como este seu.

E uma duvida , esta linha :

char caminhoArq[4056] = "clientes.txt";

Você pretende, colocar a frase " clientes.txt" na string, ou deseja ABRIR o arquivo "clientes.txt" e jogar seus dados na string ?

Link para o comentário
Compartilhar em outros sites

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,8k
×
×
  • Criar Novo...