Кент Рейсдорф. BORLAND C++BUILDER. Раздел 1
Кент Рейсдорф. BORLAND C++BUILDER. Страница 93
В строке 14 создается экземпляр класса ofstream и файл TEST.DAT. Затем в созданный файл записывается 10 текстовых строк. Строка 18 служит примером использования оператора вставки для записи в файл. Обратите внимание, что после текстовой строки в файл записывается целое число (i + 1). Оно автоматически преобразуется в строку и помещается в выходной поток. Формирование строки файла завершает манипулятор endl. Этот цикл повторяется 10 раз. Строка 20 закрывает файл после завершения цикла. В данном случае закрытие файла необходимо, поскольку мы собираемся повторно открыть его для чтения. Для незакрытого файла это будет невозможно. В строках 25-28 для вывода на экран используется процедура, похожая на ту, что применялась в примере READFILE.CPP. После запуска программы из листинга 4.5 на экран будет выведено следующее:
Файлы могут быть открыты в нескольких различных режимах. Например, при открытии файла с помощью класса ofstream по умолчанию создается новый файл. Это означает, что при использовании режима по умолчанию вы перезапишете существующий файл. Часто это совсем не то, что нужно. Например, иногда требуется добавить данные в конец существующего файла. В этом случае файл должен быть открыт в режиме добавления. Чтобы указать режим открытия файла, вы должны при создании объекта использовать один из спецификаторов openmode класса ios в конструкторе ofstream:
ofstream outfile("test.dat", ios::app); // открыть в режиме добавления
В этом случае новые данные будут записаны в конец файла. Существует несколько спецификаторов, которые можно использовать при открытии файлов. В таблице 4.1 представлен список значений, которые может принимать перечисление open_mode, а также описания соответствующих режимов.