Класс basic_ofstream
Описывает объект, который управляет вставкой элементов и закодированными объектами в буфер потока класса basic_filebuf< Elem, Tr>
с элементами типа Elem
, признаки символов которых определяются классом Tr
. Дополнительные сведения см. в разделе basic_filebuf
.
Синтаксис
template <class Elem, class Tr = char_traits<Elem>>
class basic_ofstream : public basic_ostream<Elem, Tr>
Параметры
Elem
Базовый элемент буфера файла.
Tr
Признаки базового элемента буфера файла (обычно char_traits<Elem>
).
Замечания
wchar_t
При специализации basic_ofstream
записи в файл, если файл открыт в текстовом режиме, он будет записывать последовательность MBCS. Внутреннее представление будет использовать буфер символов wchar_t
.
Объект сохраняет объект класса basic_filebuf< Elem, Tr>
.
Пример
В следующем примере показано создание объекта basic_ofstream
и запись в него текста.
// basic_ofstream_class.cpp
// compile with: /EHsc
#include <fstream>
using namespace std;
int main(int argc, char **argv)
{
ofstream ofs("ofstream.txt");
if (!ofs.bad())
{
ofs << "Writing to a basic_ofstream object..." << endl;
ofs.close();
}
}
Конструкторы
Конструктор | Description |
---|---|
basic_ofstream |
Создает объект типа basic_ofstream . |
Функции элементов
Функция-член | Description |
---|---|
close |
Закрывает файл. |
is_open |
Определяет, открыт ли файл. |
open |
Открывает файл. |
rdbuf |
Возвращает адрес сохраненного буфера потока. |
swap |
Меняет местами содержимое этого объекта basic_ofstream с содержимым указанного объекта basic_ofstream . |
Операторы
Operator | Description |
---|---|
operator= |
Назначает содержимое этого объекта потока. Это назначение перемещения, rvalue reference которое не оставляет копию позади. |
Требования
Заголовок: <fstream>
Пространство имен: std
basic_ofstream::basic_ofstream
Создает объект типа basic_ofstream
.
basic_ofstream();
explicit basic_ofstream(
const char* _Filename,
ios_base::openmode _Mode = ios_base::out,
int _Prot = (int)ios_base::_Openprot);
explicit basic_ofstream(
const wchar_t* _Filename,
ios_base::openmode _Mode = ios_base::out,
int _Prot = (int)ios_base::_Openprot);
basic_ofstream(
basic_ofstream&& right);
Параметры
_Filename
Имя файла, который необходимо открыть.
_Mode
Одно из перечислений в ios_base::openmode
.
_Prot
Защита от открытия файла по умолчанию, эквивалентная параметру shflag
в_fsopen
, _wfsopen
.
right
Ссылка rvalue на объект basic_ofstream
, используемый для инициализации этого объекта basic_ofstream
.
Замечания
Первый конструктор инициализирует базовый класс путем вызова basic_ostream(sb)
, где sb
хранится объект класса basic_filebuf< Elem, Tr>
. Он также инициализируется sb
путем вызова .>Tr
basic_filebuf
<Elem
Второй и третий конструкторы инициализировать базовый класс путем вызова basic_ostream( sb)
. Он также инициализируется sb
путем вызова<Elem
basic_filebuf
, Tr
> а затем .sb.open( _Filename, _Mode | ios_base::out)
Если последняя функция возвращает NULL
указатель, конструктор вызывает setstate(failbit)
.
Четвертый конструктор является функцией копирования. Он инициализирует объект с содержимым right
, что рассматривается как ссылка rvalue.
Дополнительные сведения см. в статьях basic_ostream
, open
и setstate
.
Пример
В следующем примере показано создание объекта basic_ofstream
и запись в него текста.
// basic_ofstream_ctor.cpp
// compile with: /EHsc
#include <fstream>
using namespace std;
int main(int argc, char **argv)
{
ofstream ofs("C:\\ofstream.txt");
if (!ofs.bad())
{
ofs << "Writing to a basic_ofstream object..." << endl;
ofs.close();
}
}
basic_ofstream::close
Закрывает файл.
void close();
Замечания
Вызовы rdbuf->close
функции-члены. Дополнительные сведения см. в разделах rdbuf
и close
.
Пример
Пример basic_filebuf::close
использования close
.
basic_ofstream::is_open
Указывает, открыт ли файл.
bool is_open() const;
Возвращаемое значение
Значение true
, если файл открыт; в противном случае — значение false
.
Замечания
Функция-член возвращает значение rdbuf->is_open
. Дополнительные сведения см. в разделах rdbuf
и is_open
.
Пример
// basic_ofstream_is_open.cpp
// compile with: /EHsc
#include <fstream>
#include <iostream>
int main( )
{
using namespace std;
ifstream file;
// Open and close with a basic_filebuf
file.rdbuf( )->open( "basic_ofstream_is_open.txt", ios::in );
file.close( );
if (file.is_open())
cout << "it's open" << endl;
else
cout << "it's closed" << endl;
}
basic_ofstream::open
Открывает файл.
void open(
const char* _Filename,
ios_base::openmode _Mode = ios_base::out,
int _Prot = (int)ios_base::_Openprot);
void open(
const char* _Filename,
ios_base::openmode _Mode);
void open(
const wchar_t* _Filename,
ios_base::openmode _Mode = ios_base::out,
int _Prot = (int)ios_base::_Openprot);
void open(
const wchar_t* _Filename,
ios_base::openmode _Mode);
Параметры
_Filename
Имя файла, который необходимо открыть.
_Mode
Одно из перечислений в ios_base::openmode
.
_Prot
Защита от открытия файла по умолчанию, эквивалентная параметру shflag
в_fsopen
, _wfsopen
.
Замечания
Вызовы rdbuf -> open(_ Filename, _Mode | ios_base::out)
функции-члены. Если эта функция возвращает NULL
указатель, функция вызывается setstate(failbit)
.
Дополнительные сведения см. в статьях rdbuf
, open
и setstate
.
Пример
Пример basic_filebuf::open
использования open
.
basic_ofstream::operator=
Назначает содержимое этого объекта потока. Это назначение перемещения, rvalue reference
которое не оставляет копию позади.
basic_ofstream& operator=(basic_ofstream&& right);
Параметры
right
Ссылка rvalue на объект basic_ofstream
.
Возвращаемое значение
Возвращает *this
.
Замечания
Оператор-член заменяет содержимое объекта при помощи содержимого right
, которое обрабатывается как ссылка rvalue.
basic_ofstream::rdbuf
Возвращает адрес сохраненного буфера потока.
basic_filebuf<Elem, Tr> *rdbuf() const
Возвращаемое значение
Возвращает адрес сохраненного буфера потока.
Пример
Пример basic_filebuf::close
использования rdbuf
.
basic_ofstream::swap
Меняет местами содержимое двух объектов basic_ofstream
.
void swap(basic_ofstream& right);
Параметры
right
Ссылка lvalue
на другой объект basic_ofstream
.
Замечания
Функция-член меняет местами содержимое этого объекта для содержимого right
.
См. также
basic_ostream
Класс
Потокобезопасность в стандартной библиотеке C++
iostream
Программирование
iostreams
Конвенций