Definir precisão com fstream para o arquivo de saída - formato duplo
Não consigo encontrar uma resposta sobre como usar um fstream já aberto para gerar dobras formatadas em um arquivo de texto. Atualmente, meu código está fazendo isso:
int writeToFile (fstream& f, product_record& p)
{
if (!f){
cout << "out file failed!!error" << endl;
return -1;
} else {
f << p.idnumber << endl;
f << p.name << endl;
f << p.price << endl;
f << p.number << endl;
f << p.tax << endl;
f << p.sANDh << endl;
f << p.total << endl;
f << intArrToString( p.stations ) << endl;
}
}
Onde p é struct chamada product_record e price, tax, sANDh e total são todosdobra Eu tentei fazerf << setprecision(4) << p.price << endl;
mas isso não funciona. Como posso formatar esse duplo para ter uma precisão de duas casas decimais. Como isso"#.00"
. Como posso conseguir isso usando especificamente o fstream?
Além disso, a tarefa geral é simplesmente ler um arquivo txt, armazenar dados em uma estrutura, adicionar estruturas a um vetor e depois ler as estruturas para imprimir em um arquivo de saída. O arquivo de entrada já possui as duplas formatadas como 10.00, 2.00 e outras (duas casas decimais)