You could consider setting the float-point precision on the cout object. For example:
Code:
...
#include <iomanip>
...
std::cout.precision(6);
std::cout << "beginTotalTime ...
...
Btw, after you close the file stream referencing /proc/uptime, don't you think that you should re-open the file to get fresh time readings for your end-times? Examine the code you posted; this step is missing. :-)
As for converting the system times in /proc/utime to something more readable, you may need to develop your own function to convert the seconds. Something like this:
Code:
#include <sstream>
...
std::string date(double time)
{
double days, hours, minutes, seconds;
days = floorl(time / 86400.0);
time -= (86400.0 * days);
hours = floorl(time / 3600.0);
time -= (3600.0 * hours);
minutes = floorl(time / 60.0);
time -= (60.0 * minutes);
seconds = time;
std::stringstream ss;
ss << days << " days "
<< std::setw(2) << std::setfill('0')
<< hours << ":" << minutes << ":" << seconds;
return ss.str();
}
...
std::cout << "beginTotalTime: " << date(beginTotalTime) << ...