Ir para conteúdo
Fórum Script Brasil

ThaisM

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre ThaisM

ThaisM's Achievements

0

Reputação

  1. Olá! Será que alguém poderia me ajudar? Estou fazendo um programa no qual é necessário criar um arquivo para gravar as informações que já foram digitadas. Estou usando uma função para chamar o código que está criando os arquivos e guardando as informações... No entanto não estou conseguindo gravar as informações através da struct que criei. Quando eu abro o programa novamente, não consigo recuperar as informações. Acredito que esteja gravando somente o ponteiro e não as informações em si. Será que alguém teria alguma ideia pra me ajudar? Aqui vai o código. #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <string.h> #include <ctype.h> #define MAX1 1000 //////////////////////////////STRUCT struct livro{ char nomedolivro[17]; int area; char autores[60]; char editora[20]; }; /////////////////////////////////////////////////////////FUNCAO CADASTRAR LIVROS void cadastrarLivros(struct livro livros[MAX1], int *contlivros){ int ii; int *pont; FILE *fptr; FILE *guarda1; ///////////////////LENDO QUAL POSIÇÃO (QUANTOS LIVROS JÁ CADASTRADOS) guarda1=fopen("guardaponteiro1.txt","r"); int x=0; while(fscanf(guarda1, "%i", &x) > 0) { fprintf(guarda1, "%i", x); printf("\n%i", x); printf("\nVALOR PONTEIRO"); } ///////////////////ESCREVENDO INFORMAÇÕES if ((fptr = fopen("pessoas", "wb")) == NULL){ printf("\nErro na abertura do arquivo"); }else{ contlivros=&x; do{ printf("\nDigite o Nome do Livro: "); gets(livros[*contlivros].nomedolivro); }while(strlen(livros[*contlivros].nomedolivro)==0); fwrite(&livros, sizeof(livro), 1, fptr); *contlivros=*contlivros+1; fclose(fptr); } ///////////////////LENDO INFORMAÇÕES if ((fptr = fopen("pessoas", "rb")) == NULL) printf("\nErro na abertura do arquivo"); else{ while(fread(&livros, sizeof(livro), 1, fptr) == 1){ for(ii = 0; ii <=*contlivros-1; ii++){ printf("\nNome: %s\n",livros[ii].nomedolivro); } } fclose(fptr); } ///////////////////GUARDANDO PONTEIRO guarda1=fopen("guardaponteiro1.txt","w"); if(guarda1==NULL){ printf("\n erro"); }else{ pont=contlivros; fprintf(guarda1, "%i", *pont); //printf("\n%i", *pont); fclose(guarda1); } ///////////////////LENDO PONTEIRO if ((fptr = fopen("guardaponteiro1.txt", "r")) == NULL){ printf("\nErro na abertura do arquivo"); }else{ while (!feof(guarda1)){ fscanf(guarda1,"%i",&*pont); printf("\n%i",*pont); } } fclose(guarda1); };////final funcao //////////////////////////////////////////////// main(){ struct livro livros[MAX1]; int opcao,contlivros=0; do{ printf("\n\n"); printf("\n Escolha sua opcao"); printf("\n 1 - Cadastrar livros"); printf("\n OPCAO: "); scanf("%d", &opcao); fflush(stdin); switch(opcao){ case 1:{ cadastrarLivros(livros, &contlivros); //criar documento adicionando livros break; } case 0:{ break; } default:{ printf("\n \n =====OPCAO INVALIDA===== \n \n"); break; } } }while (opcao!=0); } Obrigada!
×
×
  • Criar Novo...