Справочник по C/C++
Классы fstream, ifstream и ofstream

Назначение: поддерживает операции файлового ввода-ввода
Заголовок: <fstream>
Иерархия:

  • ios -> istream -> ifstream
  • ios -> ostream -> ofstream
  • ios -> iostream -> fstream

Методы

close — Закрывает файл связанный с потоком
open — Связывает файл с потоком

Конструкторы

fstream();
explicit fstream(const char *filename, 
		 ios::openmode mode = ios::in | ios::out);

ifstream();
explicit ifstream(const char *filename,
		  ios::openmode mode = ios::in);

ofstream();
explicit ofstream(const char *filename,
		  ios::openmode mode=ios::out | ios::trunc);

Функции fstream(), ifstream() и ofstream() представляют собой конструкторы классов fstream, ifstream и ofstream соответственно.

Версии функций fstream(), ifstream() и ofstream(), которые не принимают параметров, создают поток, не связанный ни с одним файлом. Этот поток можно позже связать с нужным файлом с помощью функции open().

Версии функций fstream() , ifstream() и ofstream(), которые принимают имя файла в качестве первого параметра, используются в прикладных программах наиболее часто, хотя вполне корректно можно открыть файл с помощью функции open(), в большинстве случаев обходятся без нее, поскольку эти функции конструкторов fstream, ifstream и ofstream автоматически открывают файл при создании потока. Функции конструкторов имеют те же параметры и значения, действующие по умолчанию, что и функция open().(Подробности — в разделе "open".) Например, самый распространенный способ открытия файла показан в следующем примере.

ifstream mystream("myfile");

Если по некоторым причинам файл открыть не удастся, переменная связанного потока будет равна значению false. Следовательно, либо использовав для открытия файла функцию конструктора, либо вызвав явным образом функцию open(), вам следует убедиться в том, что файл действительно был открыт, проверив для этого значение потока.


Совет программисту

В библиотеке iostream старого стиля конструктор fstream не содержит задаваемого по умолчанию значения для параметра mode. Это значит, что он не открывает автоматически поток для операций ввода и вывода. Поэтому при использовании библиотеки iostream старого стиля для открытия потока на ввод и вывод оба значения ios::in и ios::out должны задаваться явным образом. Имейте это в виду, если обратная совместимость с библиотекой iostream старого стиля является для вас важным фактором.







Нет комментариев.



Оставить комментарий:
Ваше Имя:
Email:
Антибот: *  
Ваш комментарий: