Ir ao conteúdo

Posts recomendados

Postado

Olá, preciso fazer um programa de venda, estou na parte do "carrinho", no qual eu entro com o Código do produto que desejo adicionar e a quantidade. De acordo com o código inserido o programa pega as linhas refentes à esse produto no "banco" que é um .txt.

Bom, eu consegui fazer as linhas do respectivo produto serem mostradas, mas na hora de salvar essas informações em outro .txt só é salvo uma linha do que foi mostrado.

#include <iostream>
#include <fstream>
using namespace std;

int main()
{
	fstream T_PRODUTO;
	fstream T_CARRINHO;
	
	int CODIGO, QUANTIDADE, LINHAINICIO, LINHAFIM, CONTADOR;
	string LINHA;

	system("CLS");
	
	fflush(stdin);
	cout << "Codigo... : ";
	cin >> CODIGO;
	cout << "Quantidade: ";
	cin >> QUANTIDADE;
	
  	//calcula quais são as linhas do produto referentes ao código digitado;
	if (CODIGO == 1)
	{
		LINHAINICIO = 1;
		LINHAFIM = 5;
	}
	else
	{
		LINHAINICIO = ((CODIGO-1)*5)+1;
		LINHAFIM = LINHAINICIO+4;
	}
	
	cout << endl;	
	
	T_PRODUTO.open("PRODUTO.txt");
	//mostra as respectivas linhas do produto
	while( ! T_PRODUTO.eof() ){
    getline(T_PRODUTO, LINHA);
    CONTADOR++;
    if(CONTADOR>LINHAINICIO&&CONTADOR<=LINHAFIM)cout<<LINHA<<endl;}

	T_CARRINHO.open("CARRINHO.txt", ios::out | ios::app);
			
	T_CARRINHO << LINHA << endl;
	T_CARRINHO << "Quantidade: "<< QUANTIDADE << endl;

	T_CARRINHO.close();
	T_PRODUTO.close();
}

O arquivo PRODUTO.txt está assim:

Codigo: 1
Nome: produto 1
Tamanho: grande
Preco: 1

Codigo: 2
Nome: produto 2
Tamanho: medio
Preco: 2

Codigo: 3
Nome: produto 3
Tamanho: pequeno
Preco: 3

O arquivo CARRINHO.txt fica assim:

Preco: 3
Quantidade: 1

Espero que entendam minha dúvida e se possível me ajudarem.

Grato desde já.

  • Curtir 1
Postado

@Vinicius Antony @Vinicius Antony     você está apenas lendo o arquivo e imprimindo dentro do while , e depois que sai do while depois da chave } , você  salva no outro arquivo apenas a última linha lida , então seu código com algumas modificações poderia ser assim  :

#include <iostream>
#include <fstream>
using namespace std;
int main(){
    system("color ec");
    fstream T_PRODUTO;
    fstream T_CARRINHO;
	
    int CODIGO, QUANTIDADE, LINHAINICIO, LINHAFIM, CONTADOR;
    string LINHA;

    system("CLS");
	
    fflush(stdin);
    cout << "Codigo... : ";
    cin >> CODIGO;
    cout << "Quantidade: ";
    cin >> QUANTIDADE;
	
    //calcula quais são as linhas do produto referentes ao código digitado;
    if (CODIGO == 1){
        LINHAINICIO = 1;
        LINHAFIM = 5;
    }
    else{
        LINHAINICIO = ((CODIGO-1)*5)+1;
        LINHAFIM = LINHAINICIO+4;
    }
	
    cout << endl;	
	
    T_PRODUTO.open("PRODUTO.txt");
    T_CARRINHO.open("CARRINHO.txt", ios::out | ios::app);
    //mostra as respectivas linhas do produto
    while( ! T_PRODUTO.eof() ){
        getline(T_PRODUTO, LINHA);
        CONTADOR++;

        if( CONTADOR > LINHAINICIO && CONTADOR <= LINHAFIM ){
            cout<<LINHA<<endl;
		
            T_CARRINHO << LINHA << endl;
            T_CARRINHO << "Quantidade: "<< QUANTIDADE << endl;
        }
    }
    T_CARRINHO.close();/* fecha o último arquivo primeiro como push pop */
    T__PRODUTO.close();/* fecha o primeiro arquivo por último como push pop */
}

 

  • Obrigado 1

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