Ir para conteúdo
Fórum Script Brasil

ayllaass

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Posts postados por ayllaass

  1. Boa noite!!!

    Na atividade eu preciso chamar em específico para listar todos os livros, revistas e caixas e não consigo fazer essa função. Quando chamo lista todas as obras aparecem junto 😐

    Se alguém puder me dar uma ajudinha, eu ficarei super agradecida!!!

     

    #include<stdio.h>
    #include<stdlib.h>
    #include<locale.h>
    #include<string.h>
    #define MAX 100
        
    FILE * arq;
    char url[50] = "arquivo.txt";
    char * banco[200];

    typedef struct{
        int caixa, tipo;
        int ano, edicao;
        int quant;
        char titulo[100];
        char autor[100];
        char editora[100];
        char isbn[100];
    }obras;
    obras p1[200];

    int ler_arquivo()
    {
        int i = 0;
        char leitura[200];

        arq = fopen(url, "r");
        if(arq == NULL){
            printf("ERRO na leitura do arquivo!");
        }else{
            while(fgets(leitura, 3000, arq) != NULL && (i<3000)){   
                banco = malloc(sizeof(char) * 3000);
              //variavel = malloc(tamanho da string que queremos em cada posição);
                strcpy(banco, leitura);
                i=i+1;
            }
            fclose(arq);
        }
        return i;
    }

    preencher_obras(){ //alimentar os vetores de struct!
        ler_arquivo();
         int j;
        
        printf("\nInforme o tipo da obra: [1] - livro [2] - revista: ");
        scanf("%d", &p1[j].tipo);
        fflush(stdin);
        printf("\nInforme o titulo: ");
        gets(p1[j].titulo);
        printf("\nInforme o autor: ");
        gets(p1[j].autor);
        printf("\nInforme a editora: ");
        gets(p1[j].editora);
        printf("\nInforme a edicao: ");
        scanf("%d", p1[j].edicao);
        fflush(stdin);
        printf("\nInforme o ISBN: ");
        gets(p1[j].isbn);
        printf("\nInforme o ano: ");
        scanf("%d", p1[j].ano);
        fflush(stdin);
        printf("\nInforme a quantidade de obras: ");
        scanf("%d", p1[j].quant);
        fflush(stdin);
    }

    listar_obras(){
        int k = ler_arquivo();
        
        int i = 0;
        
        for(i = 0; i<k; i++){
            printf("%s", banco);
        }
        system("pause");
    }
     
    listarObrasPorCaixa(){
        int numCaixa;
        int tipo;
        int i;
        char*opcaoObra;
            while(numCaixa == 1 || numCaixa == 2 || tipo == 1){
                printf("%s", banco);
            }
            system("pause");
    }

        
    menu (){
         obras obra[MAX];
        
        int op;
        char resp;
        
            do{
                system("cls");
                printf("\n1 - Cadastrar obras");
                printf("\n2 - Listar todas as revistas");
                printf("\n3 - Listar todos os livros");
                printf("\n4 - Listar obras por caixa");
                printf("\n0 - Sair");
                printf("\n\nEscolha uma opcao: ");
                fflush(stdin);
                scanf("%d", &op);
                
                if(op == 1){
                    preencher_obras();                
                }else if(op == 2){
                    listar_obras();
                }else if(op == 3){
                    listar_obras();
                }else if(op == 4){
                    listarObrasPorCaixa();    
                    system("pause");
                }else if((op != 1) && (op != 2) && (op != 3) && (op != 4) && (op != 0)){
                    printf("Opcao invalida");
                    system("pause");
                }else if(op == 0){
                    printf("\n\nSaindo do sistema!!\n\n");
                    system("pause");
                }
            }while(op!=0);
    }
            
    int main(){
        menu();
        setlocale(LC_ALL, "Portuguese");
    }

×
×
  • Criar Novo...