Display the vector values in c ++

1

I can not list (display) products registered in my Vector. Anyone know how to steer me, I'm learning c ++.

#include<iostream>
using namespace std;

int main() {

    int op, i=0;
    string produto[10];
    double venda[10], custo[10];
    do {

        cout << "\n\tCadastro de Produto\n";
        cout << "\n<1> Novo Produto";
        cout << "\n<2> Listar Produtos";
        cout << "\n\tOpcao: ";
        cin >> op;
        system("cls");


        switch (op) {
            case 1:
                i++;
                system("cls");
                cout<<"Produto: ";
                cin>>produto[i];
                cout<<"\nCusto: ";
                cin>>custo[i];
                cout<<"\nVenda: ";
                cin>>venda[i];

                break;

           case 2:
                system("cls");
                cout<<"Os produtos Cadastrados sao:\n"<<produto;
                cout<<"\n\n\n\n";
                system ("pause");
                system("cls");
                break;

        }
    } while (op != 0);
    return 0;
}
    
asked by anonymous 01.07.2016 / 07:05

3 answers

2

Vanusa, you need to keep in mind that you are using three arrays to store the product information and this implies a limit for the registration of 10 products in your case.

To store an undefined number of elements would require the use of vectors themselves (defined in the include of the standard c ++ library).

Considering this fact it is necessary to limit the data entry in your program so that an error is not caused when adding an 11th product.

Now to specifically answer your question:

You need to loop through each element of your array, as the following code demonstrates:

    #include <iostream>
    #include <string>

    using namespace std;

    const int quantidade_de_produtos = 10;
    string produtos[quantidade_de_produtos];

    void listar_produtos()
    {
        //Percorre a lista de produtos, inclusive os que não foram preenchidos...
        for (int i = 0; i < quantidade_de_produtos; ++i)
        {
            //Verifica se há um produto no índice atual...
            if (!produtos[i].empty())
            {
                //Imprime a descrição do produto.
                cout << "Produto: " << produtos[i] << endl;
            }
        }
    }

    int main()
    {
        produtos[0] = "Carteira";
        produtos[1] = "Sapato";
        produtos[2] = "Casaco";

        listar_produtos();

        return 0;
    }
    
01.07.2016 / 08:57
0

Your error is initially in the i increment. The i++ must be at the end of the structure.

case 1:
    system("cls");
    cout<<"Produto: ";
    cin>>produto[i];
    cout<<"\nCusto: ";
    cin>>custo[i];
    cout<<"\nVenda: ";
    cin>>venda[i];
    i++;

    break;

The first position to be inserted is 0 , so the value of i should only be incremented after inserting the data.

To print the data of a vector on the screen, a for or while

case 2:
    system("cls");
    cout<<"Os produtos Cadastrados sao:" << endl; # endl quebra a linha em c++
    for(int x=0; x<i; x++){
        cout << produto[x] << endl;
    }
    cout<<"\n\n\n\n";
    system ("pause");
    system("cls");
    break;

As you've been inserted in the n position of the product, you should print the n position.

    
01.07.2016 / 08:37
0
            case 1:

            system("cls");
            for(int i=0;i<10;i++){
            cout<<"Produto: ";
            cin>>produto[i];
            cout<<"\nCusto: ";
            cin>>custo[i];
            cout<<"\nVenda: ";
            cin>>venda[i];
            }

            break;

       case 2:
            system("cls");
            cout<<"Os produtos Cadastrados sao:\n";
            for(int i=0;i<10;i++){
            cout<<produto[i];
            cout<<"\n\n";
            }
            cout<<"\n\n";
            system ("pause");
            system("cls");
            break;

    }

try to put a for inside the case and insert in each point of the vector same thing to read, another alternative is to use a while in place of the as an indeterminate loop. It's my first time helping so sorry if you have something wrong.

    
02.07.2016 / 03:23