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 имеет единственный аргумент командной строки, указывающий имя файла расходов. Программа открывает этот файл, выводит его содержимое на экран в отформатированном виде и затем закрывает его.