แก้ไข

แชร์ผ่าน


basic_fstream Class

Describes an object that controls insertion and extraction of elements and encoded objects using a stream buffer of class basic_filebuf< Elem, Tr>, with elements of type Elem, whose character traits are determined by the class Tr.

Syntax

template <class Elem, class Tr = char_traits<Elem>>
class basic_fstream : public basic_iostream<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

The object stores an object of class basic_filebuf< Elem, Tr>.

Note

The get pointer and put pointer of an fstream object are NOT independent of each other. If the get pointer moves, so does the put pointer.

Example

The following example demonstrates how to create a basic_fstream object that can be read from and written to.

// basic_fstream_class.cpp
// compile with: /EHsc

#include <fstream>
#include <iostream>

using namespace std;

int main(int argc, char **argv)
{
    fstream fs("fstream.txt", ios::in | ios::out | ios::trunc);
    if (!fs.bad())
    {
        // Write to the file.
        fs << "Writing to a basic_fstream object..." << endl;
        fs.close();

        // Dump the contents of the file to cout.
        fs.open("fstream.txt", ios::in);
        cout << fs.rdbuf();
        fs.close();
    }
}
Writing to a basic_fstream object...

Constructors

Constructor Description
basic_fstream Constructs an object of type basic_fstream.

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, of type pointer to basic_filebuf< Elem, Tr>.
swap Exchanges the content of this object with the content of another basic_fstream object.

Requirements

Header: <fstream>

Namespace: std

basic_fstream::basic_fstream

Constructs an object of type basic_fstream.

basic_fstream();

explicit basic_fstream(
    const char* _Filename,
    ios_base::openmode _Mode = ios_base::in | ios_base::out,
    int _Prot = (int)ios_base::_Openprot);

explicit basic_fstream(
    const wchar_t* _Filename,
    ios_base::openmode _Mode = ios_base::in | ios_base::out,
    int _Prot = (int)ios_base::_Openprot);

basic_fstream(basic_fstream&& 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.

Remarks

The first constructor initializes the base class by calling basic_iostream(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 initializes the base class by calling basic_iostream( sb). It also initializes sb by calling basic_filebuf< Elem, Tr>, and then sb.open(_ Filename, _Mode). If the latter function returns a null pointer, the constructor calls setstate(failbit).

The fourth constructor initializes the object with the contents of right, treated as an rvalue reference.

Example

See streampos for an example that uses basic_fstream.

basic_fstream::close

Closes a file.

void close();

Remarks

The member function calls rdbuf-> close.

Example

See basic_filebuf::close for an example of how to use close.

basic_fstream::is_open

Determines if 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.

Example

See basic_filebuf::is_open for an example of how to use is_open.

basic_fstream::open

Opens a file.

void open(
    const char* _Filename,
    ios_base::openmode _Mode = ios_base::in | 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::in | 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). If that function returns a null pointer, the function calls setstate( failbit).

Example

See basic_filebuf::open for an example of how to use open.

basic_fstream::operator=

Assigns to this object the content from a specified stream object. This is a move assignment that involves an rvalue that does not leave a copy behind.

basic_fstream& operator=(basic_fstream&& right);

Parameters

right
An lvalue reference to a basic_fstream 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_fstream::rdbuf

Returns the address of the stored stream buffer, of type pointer to basic_filebuf< Elem, Tr>.

basic_filebuf<Elem, Tr> *rdbuf() const

Return Value

The address of the stored stream buffer.

Example

See basic_filebuf::close for an example of how to use rdbuf.

basic_fstream::swap

Exchanges the contents of two basic_fstream objects.

void swap(basic_fstream& right);

Parameters

right
An lvalue reference to a basic_fstream object.

Remarks

The member function exchanges the contents of this object and the contents of right.

See also

Thread Safety in the C++ Standard Library
iostream Programming
iostreams Conventions