Ir ao conteúdo
  • Cadastre-se

Não consigo identificar o erro (c:)


Anderson Borges

Posts recomendados

Podem me ajudar pois estou com dificuldade para compilar este codigo em C: , não tenho muita experiencia em C: e estou tentando este trabalho para a faculdade e não sai!!!! Sou novo aqui no forum podem me ajudar!!!!


/*
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 opções:\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] = '\0';
lista[indiceLista].nome[0] = '\0';
lista[indiceLista].endereco[0] = '\0';
lista[indiceLista].telefone[0] = '\0';
lista[indiceLista].login[0] = '\0';
lista[indiceLista].senha[0] = '\0';
lista[indiceLista].email[0] = '\0';
lista[indiceLista].limiteBanda[0] = '\0';
lista[indiceLista].hostname[0] = '\0';
lista[indiceLista].mac[0] = '\0';
lista[indiceLista].ip[0] = '\0';
lista[indiceLista].servico[0] = '\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] = '\0';
lista[indiceLista].nome[0] = '\0';
lista[indiceLista].endereco[0] = '\0';
lista[indiceLista].telefone[0] = '\0';
lista[indiceLista].login[0] = '\0';
lista[indiceLista].senha[0] = '\0';
lista[indiceLista].email[0] = '\0';
lista[indiceLista].limiteBanda[0] = '\0';
lista[indiceLista].hostname[0] = '\0';
lista[indiceLista].mac[0] = '\0';
lista[indiceLista].ip[0] = '\0';
lista[indiceLista].servico[0] = '\0';
fimLista--;
}
else
{
lista[indiceLista].idCliente[0] = '\0';
lista[indiceLista].nome[0] = '\0';
lista[indiceLista].endereco[0] = '\0';
lista[indiceLista].telefone[0] = '\0';
lista[indiceLista].login[0] = '\0';
lista[indiceLista].senha[0] = '\0';
lista[indiceLista].email[0] = '\0';
lista[indiceLista].limiteBanda[0] = '\0';
lista[indiceLista].hostname[0] = '\0';
lista[indiceLista].mac[0] = '\0';
lista[indiceLista].ip[0] = '\0';
lista[indiceLista].servico[0] = '\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] = '\0';
lista[fimLista].nome[0] = '\0';
lista[fimLista].endereco[0] = '\0';
lista[fimLista].telefone[0] = '\0';
lista[fimLista].login[0] = '\0';
lista[fimLista].senha[0] = '\0';
lista[fimLista].email[0] = '\0';
lista[fimLista].limiteBanda[0] = '\0';
lista[fimLista].hostname[0] = '\0';
lista[fimLista].mac[0] = '\0';
lista[fimLista].ip[0] = '\0';
lista[fimLista].servico[0] = '\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] = '\0';
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] = '\0';
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] = '\0';
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] = '\0';
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] = '\0';
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] = '\0';
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] = '\0';
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] = '\0';
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] = '\0';
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] = '\0';
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] = '\0';
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] = '\0';
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 opções:\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;
}

Link para o comentário
Compartilhar em outros sites

Olá

Anderson, na linha 264 tinha o seguinte trecho de código: ptrArq = fopen(caminhoArq,"r"); e nisso você fez quase certo, só que tem um problema, a letra "r", significa read, isto é, você manda o ponteiro ler um arquivo, acontece que esse arquivo ainda não foi criado. Portanto substitua o "r" por "w+" ou "w", "w+" se não me engano acresenta um texto ao arquivo, e somente "w" apaga tudo o que esteja posteriormente no arquivo e escreve novamente.

Eu sei que é meio confuso isso, se continuar com dúvidas poste ai que eu tento te ajudar.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!