Управление открытием файла

Мы рассмотрели примеры программ, в которых файловые операции ввода и вывода выполнялись с начала файла. Однако если необходимо записать данные в выходной файл, можно добавлять информацию в конец существующего файла. Для открытия файла в режиме дозаписи необходимо использовать второй параметр. Например:

ifstream output_file("FILENAME.EXT", ios::app);

В данном случае параметр ios::app указывает режим открытия файла. Режимы открытия файлов представлены в табл. 6.1.

Таблица 6.1 – Значения режимов открытия.

Режим открытия Назначение
ios::app Открывает файл в режиме добавления, располагая файловый указатель в конце файла
ios::ate Устанавливает файловый указатель в конце файла
ios::in Указывает открыть файл для ввода
ios::nocreate Указывает, если указанный файл не существует, не создавать файл и возвратить ошибку
ios::noreplace Указывает, если файл существует, операция открытия должна быть прервана и должна возвратить ошибку
ios::out Указывает, что надо открыть файл для вывода
ios::trunc Сбрасывает (перезаписывает) содержимое существующего файла

Чтобы предотвратить перезапись существующего файла следующая инструкция, используя режим ios::nore­place, открывает файл для вывода:

ifstream output_file("Filename.EXT", ios::out ios::noreplace);

Выполнение операций чтения и записи

Все рассмотренные нами программы выполняли файловые операции над символьными строками, однако такие операции могут выполняться над массивами и структурами данных. В этом случае используются функции read() и write().

При использовании функций read() и write() следует использовать буфер данных, в котором данные будут накапливаться, а затем переписываться. Размер буфера определяется операцией sizeof():

input_file.read(buffer, sizeof(buffer));

output_file.write(buffer, sizeof(buffer));

Следующая программа STRU_OUT.CPP использует функцию write() для вывода содержимого структуры в файл EMPLOYEE.DAT:

#include <iostream.h>

#include <fstream.h>

Void main(void)

{


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: