Lendo dados da segunda linha de um arquivo

1 resposta
PhoenixWings

Boa noite gente. Eu não sei selecionar dados num arquivo a fim de retorná-los em outro arquivo. Eu criei o código abaixo:

#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
int main() 
{
   char cod[10];
   int qtd = 0;
   float pCusto = 0.0, pVenda = 0.0;
   
   cout << "Digite o codigo do produto: ";
   cin >> cod;
   cout << "Digite a quantidade de produtos vendidos: ";
   cin >> qtd;
   cout << "Informe o preco de custo: ";
   cin >> pCusto; 
   cout << "Informe o preco de venda do produto: ";
   cin >> pVenda; 
   
   
   ofstream outfile("produtos1.txt");
   if(!outfile)
   {
      cout << "O arquivo nao pode ser aberto! ";
      return 1;
   }
   
   outfile << "Código do produto\tQuantidades vendidas\tPreço de venda\tPreço"
   << " de custo" << endl;
   outfile << cod << "\t\t\t" << qtd << "\t\t\t" << pVenda << "\t\t\t" 
   << pCusto;
   
   outfile.close();
  
  system("pause");
}

e gostaria de obter o código do produto e o lucro obtido após a execução deste aplicativo:

#include <iostream.h>
#include <fstream.h>

int main()
{
    char cod[10];
    int qtd; 
    float pCusto, pVenda;
    float lucro = 0.0;
    
    ifstream infile("produtos1.txt");
    
    if(!infile)
    {
      cout << "O arquivo não pode ser lido.";
      return 1;
    }
    
    infile >> cod;
    infile >> qtd;
    infile >> pCusto; 
    infile >> pVenda;
    
    ofstream outfile("produtos2.txt");
    if(!outfile)
    {
      cout << "O arquivo não pode ser criado.";
      return 1;
    }
    
    lucro = (pVenda - pCusto) * qtd;
    outfile << "Código do produto: " << cod << endl;
    outfile << "Lucro obtido: " << lucro; 
    
    outfile.close();
    
  system("pause");
}

contudo, após a criação de produto2.txt, eu obtenho como string “código” (não o código do produto propriamente dito) e não consigo obter o lucro obtido. Estou entendendo que o programa está lendo a primeira String do outro programa porém como faço para ele ler o código do produto que vem logo abaixo da linha dos campos? obrigado pela ajuda!

1 Resposta

E

Olhar a documentação ajuda um pouco. No seu caso, provavelmente você quer o método getline:

http://www.cplusplus.com/reference/iostream/istream/

Criado 12 de julho de 2010
Ultima resposta 13 de jul. de 2010
Respostas 1
Participantes 2