I cannot find an answer for how I might use an already opened fstream to output formatted doubles to a text file. Currently my code is doing this:
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;
}
}
Where p is struct called product_record and price, tax, sANDh, and total are all doubles I have tried doing f << setprecision(4) << p.price << endl;
but this does not work. How can i format this double to have a precision of two decimal places. Like this "#.00"
. How can I achieve this using specifically fstream?
Also, fyi, the overall task is to simply read a txt file, store data in a struct, add structs to a vector and then read from the structs to print to an output file. The input file already has the doubles formatted like 10.00, 2.00 and such(2-decimal places)
See Question&Answers more detail:os