// main.cpp #include using std::ifstream; using std::ofstream; #include using std::fixed; using std::setprecision; using std::ws; #include using std::cout; using std::cin; using std::istream; using std::ostream; #include using std::istringstream; #include using std::string; #include "Time.h" const double kPayRate = 12; int main() { cout << "Name of input file: "; string input_file_name; getline(cin, input_file_name); ifstream ifs_input(input_file_name); if (!ifs_input) { cout << "Could not open file.\n"; return 1; } cout << "Name of output file: "; string output_file_name; getline(cin, output_file_name); ofstream ofs_output(output_file_name); if (!ofs_output) { cout << "Could not open output file.\n"; return 1; } string s_line; int line_number = 0; while (getline(ifs_input, s_line)) { ++line_number; // extract data from line istringstream iss_line(s_line); int employee_number = -1; Time start_time, stop_time; iss_line >> employee_number >> start_time >> stop_time; // quit if an error occurred if (!iss_line) { cout << "Error in input file at line " << line_number << '\n'; return 1; } // quit if rest of line is not blank iss_line >> ws; if (!iss_line.eof()) { cout << "Error in input file at line " << line_number << '\n'; return 1; } double pay = (stop_time - start_time) * kPayRate; ofs_output << employee_number << ' ' << start_time << ' ' << stop_time << " $" << fixed << setprecision(2) << pay << '\n'; } return 0; }