Ir para conteúdo
Fórum Script Brasil
  • 0

Não consigo chamar uma função em específico!!!


ayllaass

Pergunta

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");
}

Editado por ayllaass
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...