Установить точность с помощью fstream для выходного файла - формат двойной
Я не могу найти ответ о том, как я могу использовать уже открытый fstream для вывода отформатированных парных чисел в текстовый файл. В настоящее время мой код делает это:
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;
}
}
Где p - это структура, называемая product_record, а цена, налог, sANDh и итог - вседвойники Я пытался делатьf << setprecision(4) << p.price << endl;
но это не работает. Как я могу отформатировать этот двойной, чтобы иметь точность двух десятичных знаков. Как это"#.00"
, Как я могу добиться этого, используя специально Fstream?
Кроме того, к вашему сведению, общая задача состоит в том, чтобы просто прочитать текстовый файл, сохранить данные в структуре, добавить структуры в вектор, а затем прочитать структуры для печати в выходной файл. Входной файл уже имеет двойные значения, отформатированные как 10.00, 2.00 и т. Д. (2 десятичных знака)