Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
vitor de jesus

C++ Cout Sendo Impresso 2 Vezes....

Recommended Posts

#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <vector>

using namespace std;

struct ProdutoInfo1 {

        string Produto_Tipo; // Ex : Creme Dental
        string MarcaProduto; // Ex : Colgate ****
        string CodigoBarras; // Ex : 01010100101101010
        string Fornecedores; // Ex : Contato

        string DataFabricou; // Ex : 20/11/2017
        string DataValidade; // Ex : 20/11/2020

        float ValorPorLote; // Ex : 40,50
        float VendaPorLote; // Ex : 50,50
        float ValorPorUnid; // Ex : 5 ,00
        float VendaPorUnid; // Ex : 5 ,50

		int ProdutosLote; // 13 Produtos
        int EstoqueAtual; // 99 Caixas
        int EstoqueMinim; // 30 Caixas

};

class  ProdutoInfo2 {

	private:

		vector <ProdutoInfo1> Produto;
		string temp;

	public :

		void AddProduto(){

			Produto.push_back(ProdutoInfo1());

			int tam = Produto.size();

			cout << " Tipo do Produto: ";
            getline(cin,temp);

            Produto[tam-1].Produto_Tipo = temp;

            system("cls");

            cout << " Marca do Produto: ";
            getline(cin,temp);

            Produto[tam-1].MarcaProduto = temp;

            system("cls");

            cout << " Codigo de Barras: ";
            getline(cin,temp);

            Produto[tam-1].CodigoBarras = temp;

            system("cls");

            cout << " Contato do Fornecedor: ";
            getline(cin,temp);

            Produto[tam-1].Fornecedores = temp;

            system("cls");

            cout << " Data de fabricação: ";
            getline(cin,temp);

            Produto[tam-1].DataFabricou = temp;

            system("cls");

            cout << " Data de Validade: ";
            getline(cin,temp);

            Produto[tam-1].DataValidade = temp;

            system("cls");

            cout << " Produtos por Lote: ";
            cin  >> Produto[tam-1].ProdutosLote;

            system("cls");

            cout << " Valor de Compra por Lote: ";
            cin  >> Produto[tam-1].ValorPorLote;

            Produto[tam-1].ValorPorUnid = Produto[tam-1].ValorPorLote / Produto[tam-1].ProdutosLote;

            system("cls");

            cout << " Valor de Venda por Lote: ";
            cin  >> Produto[tam-1].VendaPorLote;

            system("cls");

            cout << " Valor de Venda por Und: ";
            cin  >> Produto[tam-1].VendaPorUnid;

			++Produto[tam-1].EstoqueAtual;

			system("cls");

			cout << " Estoque Minimo de Lotes: ";
            cin  >> Produto[tam-1].EstoqueMinim;

            system("cls");

            cout << " voce Cadastrou o Seguinte Produto : " << endl << endl;

			UltimoProdutoCadastrado();

			cout << endl;

			cout << " Verifique Todas informações do Produto, Caso Haja Alguma";
			cout << " Informacao Incorreta Siga Este Processo: " << endl << endl;
			cout << " -> Menu Principal/Produtos/Alterar " << endl << endl;



		}

		void AllInfoProduto(int * posicao = NULL ){

			int tam = Produto.size();
			int Controle = 0;

			do{

			cout << "Codigo de Barras:";
            getline(cin,temp);

            for(int i = 0; i < tam; i++){

                if(Produto[i].CodigoBarras==temp){

                    Controle++;

                    if(posicao != NULL){
                    *posicao = i;
                    }

                    cout << endl;
                    cout << " Tipo:  " << Produto[tam-1].Produto_Tipo << endl;
                    cout << " Marca: " << Produto[tam-1].MarcaProduto << endl;

                    cout << "____________________________________________________" << endl;

                    cout << endl;

                    cout << " Codigo de Barras: "   << Produto[tam-1].CodigoBarras << endl;
                    cout << " Contato Fornecedor: " << Produto[tam-1].Fornecedores << endl;

                    cout << "____________________________________________________" << endl;

                    cout << endl;

                    cout << " Data de fabricação "  << Produto[tam-1].DataFabricou << endl;
                    cout << " Data de Validade "    << Produto[tam-1].DataValidade << endl;

                    cout << "____________________________________________________" << endl;

                    cout << endl;

                    cout << " Compra Por Lote: "    << Produto[tam-1].ValorPorLote << endl;
                    cout << " Compra Por Unid: "    << Produto[tam-1].ValorPorUnid << endl;

                    cout << "____________________________________________________" << endl;

		            cout << endl;

		            cout << " Venda  Por Lote: "    << Produto[tam-1].VendaPorLote << endl;
                    cout << " Venda  Por Unid: "    << Produto[tam-1].VendaPorUnid << endl;

                    cout << "____________________________________________________" << endl;

	            	cout << endl;

		            cout << " Produtos Por Lote: "  << Produto[tam-1].ProdutosLote << endl;
                    cout << " Estoque Atual: "      << Produto[tam-1].EstoqueAtual << endl;
                    cout << " Estoque Minim: "      << Produto[tam-1].EstoqueMinim << endl;

                    cout << "____________________________________________________" << endl;

                    }
                    }


                    }while(Controle==0);

                }

		void UltimoProdutoCadastrado(){

	    int tam = Produto.size();


		cout << "____________________________________________________" << endl;

		cout << endl;

		cout << " Tipo:  " << Produto[tam-1].Produto_Tipo << endl;
        cout << " Marca: " << Produto[tam-1].MarcaProduto << endl;

        cout << "____________________________________________________" << endl;

        cout << endl;

        cout << " Codigo de Barras: "   << Produto[tam-1].CodigoBarras << endl;
        cout << " Contato Fornecedor: " << Produto[tam-1].Fornecedores << endl;

        cout << "____________________________________________________" << endl;

        cout << endl;

        cout << " Data de fabricação "  << Produto[tam-1].DataFabricou << endl;
        cout << " Data de Validade "    << Produto[tam-1].DataValidade << endl;

        cout << "____________________________________________________" << endl;

        cout << endl;

        cout << " Compra Por Lote: "    << Produto[tam-1].ValorPorLote << endl;
        cout << " Compra Por Unid: "    << Produto[tam-1].ValorPorUnid << endl;

        cout << "____________________________________________________" << endl;

		cout << endl;

		cout << " Venda  Por Lote: "    << Produto[tam-1].VendaPorLote << endl;
        cout << " Venda  Por Unid: "    << Produto[tam-1].VendaPorUnid << endl;

        cout << "____________________________________________________" << endl;

		cout << endl;

		cout << " Produtos Por Lote: "  << Produto[tam-1].ProdutosLote << endl;

        cout << "____________________________________________________" << endl;

		cout << endl;

        cout << " Estoque Atual: "      << Produto[tam-1].EstoqueAtual << endl;
        cout << " Estoque Minim: "      << Produto[tam-1].EstoqueMinim << endl;

        cout << "____________________________________________________" << endl;

        cout << endl;

		}

};

int main(){

ProdutoInfo2 Produtos;

Produtos.AddProduto();

system("pause");
system("cls");

Produtos.AllInfoProduto();

}

Então E o seguinte.. quando Entra Na Função : Produtos.AllIfoProdutos();  e passa pro do wile o primeiro cout e impresso 2 vezes... 

Como Posso corrigir isso?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@vitor de jesus      seu código está funcionando bem aqui,  ali no do while  ele está repetindo por que precisa digitar o código de barra certo, pois ele pega esse código de barra e coloca na variável temp e depois compara com o código do produto e se não for igual ele repete o loop  sem modificar a variável controle para que ele saia do loop .  

   e esse dois cout é porque quando ele encontra o comando getline, ele pega o que estiver no buffer do teclado então se no buffer não tiver nada,então ele fica esperando digitar alguma coisa e teclar enter e se no buffer tiver algo como o caractere nullo que é quando se pressiona enter então ele passa pelo getline sem parar,  então para reslover isso precisa limpar o buffer do teclado e para isso você pode usar esse comando  :

fflush(stdin);
getline(cin,temp);

 

Editado por devair1010
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×