625_______________________________Часть IV. Новые возможности C++

// Прочитать количество служащих unsigned EmployeeCount;

float FileTotal = O.OF;

infile » EmployeeCount;

if (EmployeeCount < MIN_ALLOWABLE_EMPLOYEES ¦¦ EmployeeCount > MAX_ALLOWABLE_EMPLOYEES) {

cout « "Invalid number of employees specified in " « "expense file.\n\n";

infile.close();

}

// Установить флаги форматирования потока вывода cout.setf(ios::left ¦ ios::showpoint I ios::fixed);

cout.precision(2);

// Вывести шапку отчета cout « "+=================================="

cout « "I EXPENSE " ,

« "FILE PROCESSOR i\n";

cout « "+==================================="

« "==================================+\n\n\n" ;

// Основной цикл по служащим ErrorCode re;

do {

FileTotal += ProcessEmployee(infile, re) ;

if (re \= EXP_NO_ERROR) ( infile.close() ;

return;

} } while (--EmployeeCount);

// Вывести общую сумму файла cout « "+==================================="

COUt « "I EXPENSE FILE TOTAL: " ;

cout.unsetf(ios::left) ;

cout « setw(43) « FileTotal « " ¦\n";

cout.setf(ios::left) ;

cout « "+=================================="

/, II_________________________________________________________________-l.\r-t" •

// Закрыть входной файл — готово! infile.close (); '

Программа ExpSumI имеет единственный аргумент командной строки, указывающий имя файла расходов. Программа открывает этот файл, выводит его содержимое на экран в отформатированном виде и затем закрывает его.