basic_ofstream
Class
Describes an object that controls insertion of elements and encoded objects into a stream buffer of class basic_filebuf< Elem, Tr>
, with elements of type Elem
, whose character traits are determined by the class Tr
. For more information, see basic_filebuf
.
Syntax
template <class Elem, class Tr = char_traits<Elem>>
class basic_ofstream : public basic_ostream<Elem, Tr>
Parameters
Elem
The basic element of the file buffer.
Tr
The traits of the basic element of the file buffer (usually char_traits<Elem>
).
Remarks
When the wchar_t
specialization of basic_ofstream
writes to the file, if the file is opened in text mode it will write an MBCS sequence. The internal representation will use a buffer of wchar_t
characters.
The object stores an object of class basic_filebuf< Elem, Tr>
.
Example
The following example shows how to create a basic_ofstream
object and write text to it.
// 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();
}
}
Constructors
Constructor | Description |
---|---|
basic_ofstream |
Creates an object of type basic_ofstream . |
Member functions
Member function | Description |
---|---|
close |
Closes a file. |
is_open |
Determines if a file is open. |
open |
Opens a file. |
rdbuf |
Returns the address of the stored stream buffer. |
swap |
Exchange the contents of this basic_ofstream for the contents of the provided basic_ofstream . |
Operators
Operator | Description |
---|---|
operator= |
Assigns the content of this stream object. This is a move assignment involving an rvalue reference that doesn't leave a copy behind. |
Requirements
Header: <fstream>
Namespace: std
basic_ofstream::basic_ofstream
Creates an object of type 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);
Parameters
_Filename
The name of the file to open.
_Mode
One of the enumerations in ios_base::openmode
.
_Prot
The default file opening protection, equivalent to the shflag
parameter in _fsopen
, _wfsopen
.
right
The rvalue reference to the basic_ofstream
object being used to initialize this basic_ofstream
object.
Remarks
The first constructor initializes the base class by calling basic_ostream(sb)
, where sb
is the stored object of class basic_filebuf< Elem, Tr>
. It also initializes sb
by calling basic_filebuf
< Elem
, Tr
>.
The second and third constructors initialize the base class by calling basic_ostream( sb)
. It also initializes sb
by calling basic_filebuf
< Elem
, Tr
> and then sb.open( _Filename, _Mode | ios_base::out)
. If the latter function returns a NULL
pointer, the constructor calls setstate(failbit)
.
The fourth constructor is a copy function. It initializes the object with the contents of right
, treated as an rvalue reference.
For more information, see basic_ostream
, open
, and setstate
.
Example
The following example shows how to create a basic_ofstream
object and write text to it.
// 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
Closes a file.
void close();
Remarks
The member function calls rdbuf->close
. For more information, see rdbuf
and close
.
Example
See basic_filebuf::close
for an example that uses close
.
basic_ofstream::is_open
Indicates whether a file is open.
bool is_open() const;
Return Value
true
if the file is open, false
otherwise.
Remarks
The member function returns rdbuf->is_open
. For more information, see rdbuf
and is_open
.
Example
// 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
Opens a file.
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);
Parameters
_Filename
The name of the file to open.
_Mode
One of the enumerations in ios_base::openmode
.
_Prot
The default file opening protection, equivalent to the shflag
parameter in _fsopen
, _wfsopen
.
Remarks
The member function calls rdbuf -> open(_ Filename, _Mode | ios_base::out)
. If that function returns a NULL
pointer, the function calls setstate(failbit)
.
For more information, see rdbuf
, open
, and setstate
.
Example
See basic_filebuf::open
for an example that uses open
.
basic_ofstream::operator=
Assigns the content of this stream object. This is a move assignment involving an rvalue reference
that doesn't leave a copy behind.
basic_ofstream& operator=(basic_ofstream&& right);
Parameters
right
An rvalue reference to a basic_ofstream
object.
Return Value
Returns *this
.
Remarks
The member operator replaces the contents of the object by using the contents of right
, treated as an rvalue reference.
basic_ofstream::rdbuf
Returns the address of the stored stream buffer.
basic_filebuf<Elem, Tr> *rdbuf() const
Return Value
Returns the address of the stored stream buffer.
Example
See basic_filebuf::close
for an example that uses rdbuf
.
basic_ofstream::swap
Exchanges the contents of two basic_ofstream
objects.
void swap(basic_ofstream& right);
Parameters
right
An lvalue
reference to another basic_ofstream
object.
Remarks
The member function exchanges the contents of this object for the contents of right
.
See also
basic_ostream
Class
Thread Safety in the C++ Standard Library
iostream
Programming
iostreams
Conventions