Establezca la precisión con fstream en el archivo de salida - formato doble
No puedo encontrar una respuesta sobre cómo podría usar un fstream ya abierto para generar dobles formateados en un archivo de texto. Actualmente mi código está haciendo esto:
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;
}
}
Donde p es struct llamada product_record y price, tax, sANDh y total son todosdobles He intentado hacerf << setprecision(4) << p.price << endl;
Pero esto no funciona. ¿Cómo puedo formatear este doble para tener una precisión de dos decimales? Me gusta esto"#.00"
. ¿Cómo puedo lograr esto usando específicamente fstream?
Además, para su información, la tarea general es simplemente leer un archivo txt, almacenar datos en una estructura, agregar estructuras a un vector y luego leer desde las estructuras para imprimir en un archivo de salida. El archivo de entrada ya tiene los dobles formateados como 10.00, 2.00 y similares (2 lugares decimales)