#include #include #include #include #include #include using namespace std; struct result_list { string fname; double lowest, highest, mean, std; }; typedef struct result_list result_list; bool result_sort(result_list& r1, result_list& r2) { return r1.std < r2.std; } int main() { ifstream in("/home/tpc/robot/resultlist.txt"); double low = 315, high = 340; string dir = "/home/tpc/robot/"; vector results; while (in.good()) { string logfile; in >> logfile; string date = "20181219"; if (!in.good()) break; if (logfile.substr(2, 8) != date) continue; ifstream file(dir + logfile + ".recheck"); char line[250]; for (int i = 0; i < 33; ++i) file.getline(line, 250); string dummy; file >> dummy; double d[32]; double mean = 0; double lowest = 50000; double highest = 0; for (int i = 0; i < 32; ++i) { file >> d[i]; mean += d[i]; if (d[i] < lowest) lowest = d[i]; if (d[i] > highest) highest = d[i]; } if (lowest > low && highest < high) continue; mean /= 32; double std = 0; for (int i = 0; i < 32; ++i) std += (d[i] - mean) * (d[i] - mean); std = sqrt(std / 31); result_list r; r.fname = logfile.substr(11, 23); r.lowest = lowest; r.highest = highest; r.mean = mean; r.std = std; results.push_back(r); } sort(results.begin(), results.end(), result_sort); for (size_t i = 0; i < results.size(); ++i) cout << results[i].fname << ": " << results[i].lowest << " " << results[i].highest << " " << results[i].mean << " " << results[i].std << endl; return 0; }