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