Поделиться через


Класс 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 путем вызова .>Trbasic_filebuf<Elem

Второй и третий конструкторы инициализировать базовый класс путем вызова basic_ostream( sb). Он также инициализируется sb путем вызова<Elembasic_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 Конвенций