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_traits
Elem
<>).
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)