open()

#include <fstream>
void fstream::open(const char *filename,
		ios::openmode mode = ios::in | ios::out);
void ifstream::open(const char *filename,
		ios::openmode mode = ios::in);
void ofstream::open(const char *filename,
		ios::openmode mode = ios::out | ios::trunc);

Описание

Связывает файл с потоком

Функция является членом классов fstream, ifstream и ofstream.

С помощью функции open() файл связывается с потоком. Параметр filename содержит имя файла и может включать спецификатор пути. Значение параметра mode определяет, в каком режиме открывается файл. Ниже перечислены возможные значения этого параметра.

Флаг открытия    Определение
ios::арр Добавление всех выводимых данных в конец заданного файла
ios::ate Ввода-вывод может выполняться в любом месте файла. Указатель устанавливаеться в конец файла
ios::binary Открытие файла для двоичных операций ввода-вывода
ios::in Открытие файла для вывода
ios::out Открытие файла для ввода
ios::trunc Разрушение содержимого уже существующего файла

Используя оператор ИЛИ(OR), можно объединять в одном выражении два или больше значений(из перечисленных выше).

Включив значение ios::арр, можно обеспечить добавление всех выводимых данных в конец заданного файла. Это значение можно использовать только с файлами, которые позволяют выполнять операции вывода. Включение значения ios::ate оставляет внутренний указатель в конце файла при его открытии, но несмотря на это операции ввода-вывода могут выполняться в любом месте файла.

Значение ios::binary обеспечивает возможность открывать файл для выполнения двоичных операций ввода-вывода. По умолчанию файлы открываются в текстовом режиме.

Значение ios::in указывает на способность файла к выполнению операций ввода, а значение ios::out — операций вывода. Однако создание потока ifstream само по себе предполагает ввод, создание потока ofstream — вывод, а открытие файла с использованием потока fstream — как ввод, так и вывод.

Использование значения ios::trunc приводит к разрушению содержимого уже существующего файла с таким же именем, а сам файл усекается до нулевой длины.

Во всех случаях, если функция ореп() выполняется неудачно, поток равен значению false. Следовательно, прежде чем использовать файл, необходимо убедиться в том, что он был успешно открыт.