Ir ao conteúdo

Posts recomendados

Postado

Olá, estou fazendo este programa em C de controle de estoque apenas para hobby e aprendizado usando structs e funções mas estou com um problema.

na função imprimeProduto que é onde no menu eu irei listar os produtos adicionados está ocorrendo um loop infinito com caracteres estranhos, ja tentei fazer com if mudando o printf de lugar ou declarando outras variaveis mas sem sucesso.

se alguem puder me ajudar 

#include<stdio.h>
#include<stdlib.h>

typedef union {
    int peso;
    float volume;
}qtd;

typedef struct{
    int id;
    char nome[100];
    float preco;
    qtd quantidade;
    char op;
}produto;

int cadastraProduto(produto estoque[100]){
    int i;
    char op;

  for(i = 0;i < 100; i ++){
    if(estoque[i].id == 0){
        fflush(stdin);
        printf("Nome do Produto: ");
        scanf("%[^\n]",&estoque[i].nome);
        fflush(stdin);

        printf("Digite K para produtos com Kilos e L para produtos em volume Litros : ");
        scanf("%s",&op);
        fflush(stdin);

        if(op == 'k')
          scanf("%d",&estoque[i].quantidade.peso);
        else
          scanf("%f",&estoque[i].quantidade.volume);

          printf("Digite o preco");
          scanf("%f",&estoque[i].preco);
          fflush(stdin);
          printf("\n\n");
          estoque[i].id = i + 1;
          break;
    }
     if(i == 100) printf("Estoque Lotado.");
  }

   return menu();
}
void imprimeProduto(produto estoque[100]){
    int i;

    for(i = 0; i < 100; i++){
    printf("Nome : %s",estoque[i].nome);
    }

}

void menu(){

    int op;
    produto estoque[100];
    printf("1-Cadadastrar Novo Produto\n2-Listar Produtos\n3-Buscar Produto\n4-Deletar Produto\n5-Sair.\n");
    scanf("%d",&op);
   do{
    switch(op){
    case 1:
        cadastraProduto(estoque);
    break;
    case 2:
        imprimeProduto(estoque);
    break;
    }
   }while(op != 5);


}
int main (){
    menu();
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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