Doubt Nesting of Structs

Asked

Viewed 96 times

-1

I need to make a program that registers product and include these products in a shopping cart and finalize the sale.

Before I had done a program that registered the products, which contained only the struct Product:

Thus:

struct Produto{
    int codigo;
    char descricao[51];
    float valor;
} vprodutos[10];

void incluir();
void excluir(int codigo);
void listar();
void alterar(int coidgo);
void buscar(int codigo);

int posicao;

void incluir(){
    system("cls");

    if(posicao < 10){
        printf("Digite o codigo do produto: \n");
        scanf("%d", &vprodutos[posicao].codigo);
        fflush(stdin);
        printf("Digite a descricao do produto: \n");
        gets(vprodutos[posicao].descricao);
        printf("Digite o valor do produto: \n");
        scanf("%f", &vprodutos[posicao].valor);
        printf("Cadastro efetuado com sucesso!!!\n");
        posicao++;
    }else{
        printf("Memoria cheia!!!\n");
        }
    system("pause");
}

Now I have 2 structs I did so and is showing error: error: 'struct Product' has no Member named 'stock' - Product has no member named stock:

struct Produto{
    int codigo;
    char descricao[51];
    float valor;
}vprodutos[10];

struct Carrinho{
    int item;
    struct Produto estoque;
    int qtd;
    float subtotal;
}vcarrinho[100];

void menu_manutencao();
void abrircompra(int codigo);
//void fecharCompra();
void incluir();
//void excluir(int codigo);
void listar();
//void alterar(int coidgo);
//void buscar(int codigo);

int posicao;
int posicaovenda;

void incluir(){
    system("cls");

if(posicaovenda < 10){

        printf("Digite o codigo do produto: \n");
        scanf("%d", &vprodutos[posicaovenda].estoque.codigo);
        fflush(stdin);
        printf("Digite a descricao do produto: \n");
        gets(vprodutos[posicaovenda].estoque.descricao);
        printf("Digite o valor do produto: \n");
        scanf("%f", &vprodutos[posicaovenda].estoque.codigo);
        printf("Cadastro efetuado com sucesso!!!\n");
        posicao++;
    }else{
        printf("Memoria cheia!!!\n");
        }
    system("pause");
}

1 answer

1

I think it would be right to use &vcarrinho[posicaovenda].estoque.codigo, because the struct Carrinho that has the struct Product.

Maybe some error occurs by creating vectors with different sizes.

It also seems that the variable posicaovenda is not being incremented...

Browser other questions tagged

You are not signed in. Login or sign up in order to post.