Classe basic_fstream

Descrive un oggetto che controlla l'inserimento e l'estrazione di elementi e oggetti codificati usando un buffer di flusso della classe basic_filebuf<Elem,>Tr , con elementi di tipo Elem, i cui tratti di carattere sono determinati dalla classe .Tr

Sintassi

template <class Elem, class Tr = char_traits<Elem>>
class basic_fstream : public basic_iostream<Elem, Tr>

Parametri

Elem
L'elemento di base del buffer di file.

Tr
Tratti dell'elemento di base del buffer di file (in genere char_traitsElem<>).

Osservazioni:

L'oggetto archivia un oggetto della classe basic_filebuf<Elem, . Tr>

Nota

Il puntatore get e il puntatore put di un oggetto fstream NON sono indipendenti l'uno dall'altro. Se il puntatore get si sposta, lo fa anche il puntatore put.

Esempio

L'esempio seguente mostra come creare un oggetto basic_fstream che consente la lettura e la scrittura.

// 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...

Costruttori

Costruttore Descrizione
basic_fstream Costruisce un oggetto di tipo basic_fstream.

Funzioni membro

Funzione membro Descrizione
close Chiude un file.
is_open Determina se un file è aperto.
open Apre un file.
rdbuf Restituisce l'indirizzo del buffer del flusso archiviato, di tipo puntatore a basic_filebuf<Elem, Tr>.
swap Scambia i contenuti di questo oggetto con quelli di un altro oggetto basic_fstream.

Requisiti

Header:<fstream>

Spazio dei nomi: std

basic_fstream::basic_fstream

Costruisce un oggetto di tipo 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);

Parametri

_Filename
Nome del file da aprire.

_Modo
Una delle enumerazioni in ios_base::openmode.

_Prot
Protezione di apertura file predefinita, equivalente al parametro shflag in _fsopen, _wfsopen.

Osservazioni:

Il primo costruttore inizializza la classe base chiamando basic_iostream(), dove sb è l'oggetto archiviato della classe basic_filebuf<Elem, Tr>.sb Inizializza sb anche chiamando basic_filebuf<Elem, Tr.>

Il secondo e il terzo costruttore inizializza la classe base chiamando basic_iostream( sb). Inizializza sb anche chiamando<basic_filebuf Elem, Tr> e poi sb.open(_ Filename, _Mode). Se quest'ultima funzione restituisce un puntatore Null, il costruttore chiama setstate(failbit).

Il quarto costruttore inizializza l'oggetto con il contenuto di right, considerato come riferimento rvalue.

Esempio

Vedere streampos per un esempio di utilizzo di basic_fstream.

basic_fstream::close

Chiude un file.

void close();

Osservazioni:

La funzione membro chiama rdbuf-> close.

Esempio

Vedere basic_filebuf::close per un esempio di utilizzo di close.

basic_fstream::is_open

Determina se un file è aperto.

bool is_open() const;

Valore restituito

true se il file è aperto; in caso contrario, false.

Osservazioni:

La funzione membro restituisce rdbuf-is_open>.

Esempio

Vedere basic_filebuf::is_open per un esempio di utilizzo di is_open.

basic_fstream::open

Apre un 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);

Parametri

_Filename
Nome del file da aprire.

_Modo
Una delle enumerazioni in ios_base::openmode.

_Prot
Protezione di apertura file predefinita, equivalente al parametro shflag in _fsopen, _wfsopen.

Osservazioni:

La funzione membro chiama rdbuf -> open(_ Filename, _Mode). Se tale funzione restituisce un puntatore Null, la funzione chiama setstate( failbit).

Esempio

Vedere basic_filebuf::open per un esempio di come usare open.

basic_fstream::operator=

Assegna a questo oggetto il contenuto di un oggetto flusso specificato. Si tratta di un'assegnazione di spostamento che implica un rvalue che non lascia alcuna una copia.

basic_fstream& operator=(basic_fstream&& right);

Parametri

right
Riferimento lvalue a un oggetto basic_fstream.

Valore restituito

Restituisce *this.

Osservazioni:

L'operatore membro sostituisce il contenuto dell'oggetto utilizzando il contenuto di right, considerato come riferimento rvalue.

basic_fstream::rdbuf

Restituisce l'indirizzo del buffer del flusso archiviato, di tipo puntatore a basic_filebuf<Elem, Tr>.

basic_filebuf<Elem, Tr> *rdbuf() const

Valore restituito

L'indirizzo del buffer di flusso archiviato.

Esempio

Vedere basic_filebuf::close per un esempio di utilizzo di rdbuf.

basic_fstream::swap

Scambia il contenuto di due oggetti basic_fstream.

void swap(basic_fstream& right);

Parametri

right
Riferimento lvalue a un oggetto basic_fstream.

Osservazioni:

La funzione membro scambia il contenuto di questo oggetto e il contenuto di destra.

Vedi anche

Thread Safety in the C++ Standard Library (Sicurezza dei thread nella libreria standard C++)
Programmazione iostream
iostreams Conventions (Convenzioni di iostream)