Copiar string para arquivo txt? [RESOLVIDO]

1. Copiar string para arquivo txt? [RESOLVIDO]

Jose Renan
JoseRenan

(usa Ubuntu)

Enviado em 08/06/2012 - 09:48h

olá pessoal, fiz um programa que recebe os preços de alguns produtos e a quantidade vendida deles e que no final gera o salário do vendedor com um fixo mais 5% de comissão.
Após o usuário ter digitado os dados é mostrada uma tabela com a relação produto/valor unitário/qtd vendida/valor total e embaixo o salário.
Depois de uma olhada no index de ajuda da parte C++ do Codeblocks SVN eu fiz com que o programa criasse um arquivo chamado relatório.txt da mesma forma com que a tabela aparece no prompt ou terminal. Para tanto ou usei a bibliotecas <string>, <fstream> e <sstream>, além da básica <iostream> e <cstdlib>.

#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
#include <locale>
#include <sstream>
using namespace std;
int main()
{
setlocale(LC_ALL,"portuguese");
float vun[11], qtdvendida[11], salario=0;
char aux;
ifstream fin("relatório.txt");
if (!fin) ofstream fout("relatório.txt");
for (int i=1; i<11; i++)
{
cout<<"Digite a quantidade do produto "<<i<<": ";
cin>>qtdvendida[i];
cin.ignore();
cout<<"Digite o valor do produto "<<i<<": ";
cin>>vun[i];
cin.ignore();
salario=qtdvendida[i]*vun[i]+salario;
}
stringstream s1[12];
s1[0]<<" Produto\tQtd Vendida\tV. Unitário\tV. Total\n";
cout<<s1[0].str();
for (int i=1; i<11; i++)
{
s1[i]<<" "<<i<<"\t\t"<<qtdvendida[i]<<"\t\t"<<vun[i]<<"\t\t"<<qtdvendida[i]*vun[i]<<"\n";
cout<<s1[i].str();
}
s1[11]<<"\nSalário: R$"<<400+salario*0.05;
cout<<s1[11].str();
ofstream fout("ralatório.txt");
for (int j=0; j<12; j++)
{
for (int i=0; i<s1[i].str().length(); i++)
{
aux=s1[j].str().at(i);
fout.put(aux);
}
}
}


O código é mais ou menos esse (tô sem o cpp aqui e fiz ele de novo pra vcs verem)
notem que eu leio caractere por caractere e vou copiando para a saída, não achei nada que pudesse facilitar copiando as strings direto pro arquivo, tem como fazer isso? Ah.. e como eu faço para mostrar 2 casas decimais, mesmo que sejam zero no relatório?
aguardo, vlw!


  


2. Re: Copiar string para arquivo txt? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 12/06/2012 - 01:14h

Procure uma função equivalente a fprintf do C, que funciona dessa forma:


#include<stdio.h>
#include<stdlib.h>

int main() {
FILE *pArq; /*pArq é um ponteiro de arquivo*/
char string[10];

scanf("%s", string);

pArq = fopen("arquivoTeste", "w"); /*e receberá o endereço do mesmo agora*/

fprintf(pArq, "Nome: %s", string); /*dessa maneira a string vai ser impressa inteira no arquivo*/

fclose(pArq);

return 0;
}


Eu não sei C++, mas acredito que poderá usar fprintf(apesar de não ser legal ficar misturando as duas), o que você precisa ficar atento é na hora de passar o ponteiro de arquivo que você gerou no seu código para fprintf. E para as duas casas decimais também em C:

fprintf(pArq, "%.2f", variavel); 



3. Re: Copiar string para arquivo txt? [RESOLVIDO]

Jose Renan
JoseRenan

(usa Ubuntu)

Enviado em 23/07/2012 - 12:10h

Obrigado thiago, já consegui resolver o problema, desculpe a demora na resposta (8) . Eu usei o mesmo código e só mudei umas coisinhas, resolvido, vou tentar colocar o código aqui mais tarde, vlw, brigadão!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts