624 Часть IV. Новые возможности C++
cin.get(ChompNewline) ;
NewEmployee.SetZip(NewZip) ;
cout « "\nNumber of expense items for this employee? ";
cin » NewNumExpenses;
cin.get(ChompNewline);
NewEmployee.SetNumExpenses(NewNumExpenses);
// Внести информацию о служащем в файл outfile « NewEmployee;
// Ввести все его расходы for (loop = 0; loop < NewEmployee.GetNumExpenses(); loop++)
GetNewExpenseItem(outfile, loop); -}
void mainline argc, char *argv[]) {
// Проверить число аргументов командной строки. if (argc != 2) {
cout « "USAGE: expmaker <outfile name>\n\n"; » return;
1
// Открыть файл для вывода ofstream outfile(argv[l]);
// Зарезервировать место в файле для счетчика служащих unsigned EmployeeCount =• 0;
outfile « setw(5) « EmployeeCount « setw(O) « " ";
// Основной цикл по служащим char Again;
do (
char ChompNewline;
ErnployeeCount++;
GetNewEmployee(outfile) ;
cout « "\nEnter another employee (Y/N)? ";
cin » Again;
cin.get(ChompNewline);
} while (Again --= 'y' I¦ Again == 'Y');
// Вернуться в начало файла и вписать реальное
// число служащих
outfile.seekp(0, ios::beg);
outfile « setw(5) « EmployeeCount;
// Закрыть выходной файл — готово! outfile.closeO;
!ы можете построить программу ExpMaket и затем сформировать с ее по-гощью сколько угодно различных файлов, в том числе файлы, содержащие