Search code examples
c++fileatof

read long double from a file, then write to another file


i have following part of code:

string v;

getline(linestream,v,' ');

double d=atof(v.c_str());

fprintf(writeFile3,"%f\n",(double)d);   

but lets say first line has value 0.08012901 but d=0.080129 last 2 values are omitted, how can i get full double value?

Thank you


Solution

  • It's not that the decimal places are not stored in the d. It's just that fprintf only prints 6 decimal places by default. To print 8, try

    fprintf(writeFile3, "%.8f\n", d);
    

    You don't have to cast d as a double since it already is of type double.