Ir ao conteúdo
  • Cadastre-se
fdsmello

Ajuda em Salvar e Carregar arquivo

Recommended Posts

Estou com problema para salvar e carregar aquivo nesse codigo ele salva tudo sem nada e carrega sem nada , no caso sem nem uma informação.

#include<stdlib.h>#include<stdio.h>#include<string.h>#define QUANTIDADE_CLIENTES 99999void InserirCliente(void);void ApresentarCliente(void);void GravarDados (void);void AlterarCliente(void);typedef struct telefone{    char codInternacional[3];    char codArea[3];    char numeroTel[10];} tpTelefone;typedef struct data{    int dia;    int mes;    char ano[5];} tpData;struct cliente{    char nome[51];    tpTelefone residencialTel;    char cpf[12];    tpData nascimento;    char logradouro[60];    char bairro[20];    char cep[10];    char complemento[51];    char email[100];    tpData DtCadastro;};struct cliente listaClientes[QUANTIDADE_CLIENTES];int inicioListaCliente = 0;int fimListaCliente = 0;int MenuPrincipal(){    //----------------------MENU PRICIPAL-------------------------------------------      char escolha=0;      system("color 1f");//função para alterar a cor o 1º representa o fundo e 2º numero representa caracteres      printf("\n                ======================================\n");      printf("               |         __      __    ___  ___  __   |");      printf("\n               | |\\  /| |       |  | |   /    / |  |  |");      printf("\n               | | \\/ | |--     |--  | /    /   |--|  |");      printf("\n               | |    | |       |    | ---  --- |  |  |");      printf("\n               |                          VERSAO 1.0  |");      printf("\n                ======================================\n");      printf("\n                             MENU PRINCIPAL");      printf("\n\n\n                \t\tCLIENTE");      printf("\n\n\n                   \t[1] - INCLUIR CLIENTE\t\t[2]GRAVAR DADOS");      printf("\n\n                     \t[3] - CARREGAR CLIENTES\t\t[4]ALTERAR DADOS CLIENTES");      printf("\n\n\n                         Bem Vindo(a) ao MF PIZZA!\n");      printf("________________________________________________________________________________");      printf("\n[Opcao]: ");      return (getche());     //------------------------MENU PRINCIPAL----------------------------------------}void TrataMenu( char op){    switch(op)    {            case '1':InserirCliente();                    break;            case '2':GravarDados();                    break;            case '3': ApresentarCliente();                    break;            case '4': AlterarCliente();                    break;    }}int main(){    int opcao = 0;    do    {        opcao=MenuPrincipal();        TrataMenu(opcao);    }    while(opcao != 0);    return (0);}void InserirCliente(){    int escolha =0;    int contadorCpf =0;    system("cls");    do    {    system("cls");    printf("DESEJA VOLTAR AO MENU PRINCIPAL \n\n[1]RETORNA AO MENU PRINCIPAL\n\nAPERTE [2] PARA PROSSEGUIR \n\n[ ]\b\b");    scanf("%d",&escolha);    if(escolha==1)        {        system("cls");        main();        }    else if (escolha==2)        {    system("cls");    system("color 0f");    printf("\n                             INSERIR CLIENTE");    printf("\n                             ===============");    if(fimListaCliente < QUANTIDADE_CLIENTES)            {             fflush(stdin);            printf("\n\n\nNOME: ");            scanf("%51[a-z][A-Z][^\n]",listaClientes[fimListaCliente].nome);            strupr(listaClientes[fimListaCliente].nome); // Transforma a string em maiscula para facilitar numa função pesquisa            fflush(stdin);            printf("\nTELEFONE: ");            printf("\n DIGITE O CODIGO NACIONAL: [  ]\b\b\b");            scanf("%3[0-9][^\n]",listaClientes[fimListaCliente].residencialTel.codInternacional);// função fgest para não passar de caracteres estupulados da sting            fflush(stdin);            printf("\n DIGITE O CODIGO AREA: [  ]\b\b\b");            scanf("%3[0-9][^\n]",listaClientes[fimListaCliente].residencialTel.codArea);            fflush(stdin);            printf("\n DIGITE O TELEFONE RESIDENCIAL: ");            scanf("%10[^\n]",listaClientes[fimListaCliente].residencialTel.numeroTel);            fflush(stdin);        do        {            printf("\nCPF: ");            scanf("%12[0-9][^\n]",listaClientes[fimListaCliente].cpf);            fflush(stdin);            contadorCpf = strlen(listaClientes[fimListaCliente].cpf);        }while((contadorCpf< 11) || (contadorCpf>11));        do        {        printf("\nDATA DE NASCIMENTO: ");        printf("DIA: ");        scanf("%d",&listaClientes[fimListaCliente].nascimento.dia);        fflush(stdin);        }while((listaClientes[fimListaCliente].nascimento.dia > 31)|| (listaClientes[fimListaCliente].nascimento.dia<1));        do        {            printf("MES: ");            scanf("%d",&listaClientes[fimListaCliente].nascimento.mes);            fflush(stdin);        }while((listaClientes[fimListaCliente].nascimento.mes < 1)|| (listaClientes[fimListaCliente].nascimento.mes > 12));            printf("ANO: ");            scanf("%5[0-9][^\n]",listaClientes[fimListaCliente].nascimento.ano);            //fgets(listaClientes[fimListaCliente].nascimento.ano,5,stdin);            fflush(stdin);            printf("\nE-MAIL: ");            scanf("%100[^\n]",listaClientes[fimListaCliente].email);            strupr(listaClientes[fimListaCliente].email);            fflush(stdin);            printf("\nLOGRADOURO (rua, avenida, travessa, ...): ");            scanf("%60[^\n]",listaClientes[fimListaCliente].logradouro);            strupr(listaClientes[fimListaCliente].logradouro);            fflush(stdin);            printf("\nCOMPLEMENTO (casa, apto, ...): ");            scanf("%51[^\n]",listaClientes[fimListaCliente].complemento);            strupr(listaClientes[fimListaCliente].complemento);            fflush(stdin);            printf("\nBAIRRO: ");            scanf("%20[^\n]",listaClientes[fimListaCliente].bairro);            strupr(listaClientes[fimListaCliente].bairro);            fflush(stdin);            printf("\nCEP: ");            scanf("%10[^\n]",listaClientes[fimListaCliente].cep);            strupr(listaClientes[fimListaCliente].cep);            fflush(stdin);            printf("\nDATA DO CADASTRO: ");            do{            printf("DIA: ");            scanf("%d",&listaClientes[fimListaCliente].DtCadastro.dia);            fflush(stdin);            }while((listaClientes[fimListaCliente].DtCadastro.dia > 31)|| (listaClientes[fimListaCliente].DtCadastro.dia<1));            do{            printf("MES: ");            scanf("%d",&listaClientes[fimListaCliente].DtCadastro.mes);            fflush(stdin);            }while((listaClientes[fimListaCliente].DtCadastro.mes < 1)|| (listaClientes[fimListaCliente].DtCadastro.mes > 12));            printf("ANO: ");            scanf("%5[0-9][^\n]",listaClientes[fimListaCliente].DtCadastro.ano);            fflush(stdin);            printf("\n\t\t\t   CLIENTE CADASTRADO! \n\n\t PRESSIONE QUALQUER TECLA PARA RETORNAR AO MENU PRINCIPAL");            fimListaCliente++;            }    else        {        printf("\n\n\nQUANTIDADE DE CLIENTES CADASTRADOS CHEGOU AO LIMITE!");        }    }    getchar();}while ((escolha<1)||(escolha>2));}void GravarDados (){    system("cls");    int indice = 0;    char temp[4096];    FILE *ptrArq;      ptrArq = fopen("CLIENTE.txt","a");        if(!ptrArq)    {            printf("\nErro na abertura do arquivo! Finalizando o programa!\n");            getchar();            return;    }  for (indice=0;indice<fimListaCliente;indice++)  {    sprintf(temp,"\n\n______________________________________\n\nNOME: %s;TELEFONE: +%s[%s]%s;CPF: %s;DATA NASC: %d/%d/%s;EMAIL: %s;LOGRADOURO: %s;COMPLEMENTO: %s;BAIRRO: %s;CEP: %s;DATA CADASTRO: %d/%d/%s;\n",listaClientes[fimListaCliente].nome,listaClientes[fimListaCliente].residencialTel.codInternacional,listaClientes[fimListaCliente].residencialTel.codArea,listaClientes[fimListaCliente].residencialTel.numeroTel,listaClientes[fimListaCliente].cpf,listaClientes[fimListaCliente].nascimento.dia,listaClientes[fimListaCliente].nascimento.mes,listaClientes[fimListaCliente].nascimento.ano,listaClientes[fimListaCliente].logradouro,listaClientes[fimListaCliente].complemento,listaClientes[fimListaCliente].bairro,listaClientes[fimListaCliente].cep,listaClientes[fimListaCliente].email,listaClientes[fimListaCliente].DtCadastro.dia,listaClientes[fimListaCliente].DtCadastro.mes,listaClientes[fimListaCliente].DtCadastro.ano);    fputs(temp,ptrArq);    printf("Cadastros Salvos");  }    fclose(ptrArq);    getchar();}void ApresentarCliente(){    {        system("cls");        printf("\n                             CLIENTES CADASTRADOS");        printf("\n                     \t=============================");        char c;        FILE *ptrvisualizar;        ptrvisualizar = fopen("CLIENTE.txt", "r");        do {            c = fgetc(ptrvisualizar);            printf("%c",c);            if (c == ';')                printf("\n");            } while (c != EOF);            getch();            fclose(ptrvisualizar);            getchar();           }    getchar();}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

Um exemplo simples, utilizando arquivos seria:

FILE *e;            e = fopen("estatic.txt", "w");            if ( e != NULL)            {                fprintf("---------- Exemplo -----------\n");            }            else            {                if ( arquivo == NULL)                {                    printf("ERRO EM CRIAR/SALVAR ARQUIVO! \n");                    return -2;                }            }

Pelo que eu vejo no seu código você esta utilizando o printf normal, sendo que o certo seria o fprintf, já para ler algum número por exemplo, seria algo assim:

fscanf("%i", nu); //* buscando e guardando um numero inteiro que esta no arquivo.

Att

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×