Ir ao conteúdo
  • Cadastre-se

Ajuda em Salvar e Carregar arquivo


fdsmello

Posts recomendados

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();}
Link para o comentário
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

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...