—правочник по C/C++
open()

#include <fstream.h>
void open(const char *filename, int mode,
	int access=filebuf::openprot);

ќписание

—в€зывает файл с потоком

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

— помощью функции open() файл св€зываетс€ с потоком. ѕараметр filename содержит им€ файла и может включать спецификатор пути. «начение параметра mode определ€ет, в каком режиме открываетс€ файл. Ќиже перечислены возможные значени€ этого параметра.

‘лаг†открыт舆†† ќпределение
ios::арр ƒобавление всех выводимых данных в конец заданного файла
ios::ate ¬вода-вывод может выполн€тьс€ в любом месте файла. ”казатель устанавливаетс€ в конец файла
ios::binary ќткрытие файла д눆двоичных операций ввода-вывода
ios::in ќткрытие файла дл€ вывода
ios::nocreate Ќеудача†если заданного файла еще не существует
ios::noreplace «апрет выполнени€ если заданный файл уже существует
ios::out ќткрытие файла дл€ ввода
ios::trunc –азрушение содержимого уже существующего файла

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

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

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

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

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

¬ключение значени€ ios::nocreate обрекает функцию open() на неудачу, если заданного файла еще не существует. «начение ios::norepiace запрещает выполнение функции open(), если заданный файл уже существует, а значени€ ios::ate и ios::арр при этом не заданы.

«начение параметра access определ€ет режим доступа к файлу. ѕо умолчанию действует значение filebuf::openprot (filebuf Ч это базовый класс дл€ классов работы с файлами), означающее обычный файл. «а информацией о других возможных значени€х параметра access обратитесь к документации на используемый вами компил€тор.

ќткрыва€ файл, дл€ параметров mode и access можно использовать значени€, действующие по умолчанию. ќткрыва€ файл ввода, параметр mode можно по умолчанию установить равным значению ios::in. ќткрыва€ файл вывода, параметр mode по умолчанию можно установить равным значению ios::out. ¬ любом случае дл€ параметра access по умолчанию используетс€ вариант обычного файла(normal file). Ќапример, при выполнении следующего фрагмента программы открываетс€ файл с именем TEST дл€ операций вывода.

out.open("test");	//по умолчанию работа с обычным
			//файлом дл€ вывода

„тобы открыть поток дл€ ввода и вывода, необходимо задать дл€ параметра mode значени€ ios::in и ios::out, как показано ниже.

mystream.open("test", ios::in | ios:out);

¬о многих компил€торах при открытии файлов дл€ операций чтени€/записи никаких значений, действующих по умолчанию, не предусмотрено,

¬о всех случа€х, если функци€ open() выполн€етс€ неудачно, поток будет равен нулю. —ледовательно, прежде чем использовать файл, необходимо убедитьс€ в том, что он был успешно открыт.






–Э–µ—В –Ї–Њ–Љ–Љ–µ–љ—В–∞—А–Є–µ–≤.



–Ю—Б—В–∞–≤–Є—В—М –Ї–Њ–Љ–Љ–µ–љ—В–∞—А–Є–є:
–Т–∞—И–µ –Ш–Љ—П:
Email:
–Р–љ—В–Є–±–Њ—В: *  
–Т–∞—И –Ї–Њ–Љ–Љ–µ–љ—В–∞—А–Є–є: