Ir ao conteúdo
  • Cadastre-se

Amanda Umlauf

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

2
  1. @arfneto @Lucca Rodrigues Muito obrigado aos dois, vou refazer o código utilizando tudo que me passaram. Agradeço a paciência e todo o conhecimento. Ainda estou aprendendo e o ead não facilitou o aprendizado durante as aulas kkkkk. valeu
  2. Boa tarde, Estou fazendo um trabalho da faculdade, usando arquivo, no qual o usuário realiza cadastros de livros e operações básicas como listar, alterar, excluir etc No entanto, estou com dificuldades na função visualizar para fazer com que meu programa liste todos os livros cadastrados. Ele mostra apenas o ultimo. Podem ter algumas coisas erradas no código em geral, eu meio que to fazendo e aprendendo ao mesmo tempo, se alguém conseguir dar uma dica ou mostrar como ficaria essa parte, agradeço. Segue o código: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #define TAM 100 FILE *pArq; typedef struct biblioteca { char nome_livro[500], autor[500], livro_lido[500]; int pags, num_livro; }cad; cad lib[TAM]; void cadastrar(); void visualizar(); int main() { setlocale(LC_ALL, "Portuguese"); int i, opcao, cont; i = opcao = cont = 0; while (opcao != 6) { printf("\n\n--------------" " BEM-VINDO A SUA BIBLIOTECA " "----------------\n"); printf("\n\n *Utilize os números para navegar no menu* \n"); printf("\n\n-------------------------\n"); printf("1. ADICIONAR UM LIVRO NOVO\n "); printf("2. MOSTRAR LIVROS CADASTRADOS\n"); printf("6. SAIR"); printf("\n\nESCOLHA UMA DAS opções ACIMA: "); scanf("%d", &opcao); switch (opcao) { case 1: cadastrar(); system ("pause"); break; case 2: visualizar(); break; case 6: exit(0); } } getchar(); return 0; } void abrir_arq(){ pArq = fopen("biblioteca.txt", "a"); if(pArq == NULL){ printf("Erro na abertura do arquivo!"); return 1; } return 0; } void cadastrar() { int i; int cont; abrir_arq("a"); for(i=0;i<1;i++) { getchar(); printf("INSIRA O NÚMERO DO LIVRO: "); scanf("%d", &lib[i].num_livro); printf("INSIRA O NOME DO LIVRO: "); scanf("%s", &lib[i].nome_livro); printf("INSIRA O NOME DO AUTOR: "); scanf("%s", &lib[i].autor); printf("INSIRA O NÚMERO DE PÁGINAS: "); scanf("%d", &lib[i].pags); printf("VOCÊ JÁ LEU ESSE LIVRO? (INSIRA NO FORMATO: LIDO/LEITURA PENDENTE) "); scanf("%s", &lib[i].livro_lido); fprintf(pArq,"%d ",lib[i].num_livro); fprintf(pArq,"%s ",lib[i].nome_livro); fprintf(pArq,"%s ",lib[i].autor); fprintf(pArq," %d ",lib[i].pags); fprintf(pArq," %s \n",lib[i].livro_lido); } fclose(pArq); } void visualizar() { pArq = fopen("biblioteca.txt", "r"); if(pArq == NULL){ printf("Erro na abertura do arquivo!"); return 1; } int i = 0; for (i = 0; i < TAM; i++) { if (lib[i].num_livro != 0){ printf("\t LIVRO NÚMERO = %d", lib[i].num_livro); printf("\t NOME DO LIVRO = %s", lib[i].nome_livro); printf("\t NOME DO AUTOR = %s", lib[i].autor); printf("\t QUANTIDADE DE PAGINAS = %d", lib[i].pags); printf("\t STATUS DE LEITURA = %s \n", lib[i].livro_lido); } } printf("\n"); getchar(); fflush(stdin); system("pause"); }

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...