basic_fstream (Clase)
Describe un objeto que controla la inserción y la extracción de elementos y objetos codificados mediante un búfer de flujo de clase basic_filebuf<Elem
, Tr
>, con elementos de tipo Elem
, cuyos rasgos de caracteres están determinados por la clase Tr
.
Sintaxis
template <class Elem, class Tr = char_traits<Elem>>
class basic_fstream : public basic_iostream<Elem, Tr>
Parámetros
Elem
Elemento básico del búfer del archivo.
Tr
Rasgos del elemento básico del búfer del archivo (normalmente char_traits
<Elem
>).
Comentarios
El objeto almacena un objeto de clase basic_filebuf
<Elem
, Tr
>.
Nota:
El puntero get y el puntero put de un objeto fstream NO son independientes el uno del otro. Si el puntero get se mueve, también lo hace el puntero put.
Ejemplo
En el ejemplo siguiente se muestra cómo crear un objeto basic_fstream
del que se puede leer y en el que se puede escribir.
// 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...
Constructores
Constructor | Descripción |
---|---|
basic_fstream | Construye un objeto de tipo basic_fstream . |
Funciones miembro
Función de miembro | Descripción |
---|---|
close | Cierra un archivo. |
is_open | Determina si un archivo está abierto. |
open | Abre un archivo. |
rdbuf | Devuelve la dirección del búfer de flujo almacenado de puntero de tipo a basic_filebuf<Elem , Tr >. |
swap | Intercambia el contenido de este objeto con el contenido de otro objeto basic_fstream . |
Requisitos
Encabezado:<fstream>
Espacio de nombres: std
basic_fstream::basic_fstream
Construye un objeto de 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);
Parámetros
_Filename
Nombre del archivo que se va a abrir.
_Mode
Una de las enumeraciones de ios_base::openmode.
_Prot
Protección predeterminada de apertura del archivo, equivalente al parámetroshflag en _fsopen, _wfsopen.
Comentarios
El primer constructor inicializa la clase base al llamar a basic_iostream(sb
), donde sb
es el objeto almacenado de clase basic_filebuf<Elem, Tr>. También inicializa sb
al llamar a basic_filebuf
<Elem, Tr>.
El segundo y el tercer constructor inicializan la clase base al llamar a basic_iostream
(sb). También inicializa sb
al llamar a basic_filebuf
<Elem, Tr> y, luego, a sb.open(_ Filename, _Mode
). Si esta última función devuelve un puntero nulo, el constructor llama a setstate(failbit
).
El cuarto constructor inicializa el objeto con el contenido de right
, tratado como una referencia a un valor R.
Ejemplo
Vea streampos para obtener un ejemplo de uso de basic_fstream
.
basic_fstream::close
Cierra un archivo.
void close();
Comentarios
La función miembro llama a rdbuf- > close.
Ejemplo
Vea basic_filebuf::close para obtener un ejemplo de uso de close
.
basic_fstream::is_open
Determina si un archivo está abierto.
bool is_open() const;
Valor devuelto
true
si el archivo está abierto; de lo contrario, false
.
Comentarios
La función miembro devuelve rdbuf->is_open.
Ejemplo
Vea basic_filebuf::is_open para obtener un ejemplo de uso de is_open
.
basic_fstream::open
Abre un archivo.
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);
Parámetros
_Filename
Nombre del archivo que se va a abrir.
_Mode
Una de las enumeraciones de ios_base::openmode.
_Prot
Protección predeterminada de apertura del archivo, equivalente al parámetroshflag en _fsopen, _wfsopen.
Comentarios
La función miembro llama a rdbuf -> open(_ Filename, ). _Mode
Si esa función devuelve un puntero nulo, la función llama a setstate(failbit
).
Ejemplo
Vea basic_filebuf::open para obtener un ejemplo de uso de open
.
basic_fstream::operator=
Asigna a este objeto el contenido de un objeto de flujo especificado. Se trata de una asignación de movimiento que implica un valor que no deja ninguna copia.
basic_fstream& operator=(basic_fstream&& right);
Parámetros
right
Referencia lvalue a un objeto basic_fstream
.
Valor devuelto
Devuelve *this
.
Comentarios
El operador miembro reemplaza el contenido del objeto por el contenido de right, que se trata como referencia rvalue.
basic_fstream::rdbuf
Devuelve la dirección del búfer de flujo almacenado de puntero de tipo a basic_filebuf<Elem, Tr>.
basic_filebuf<Elem, Tr> *rdbuf() const
Valor devuelto
Dirección del búfer de flujo almacenado.
Ejemplo
Vea basic_filebuf::close para obtener un ejemplo de uso de rdbuf
.
basic_fstream::swap
Intercambia el contenido de dos objetos basic_fstream
.
void swap(basic_fstream& right);
Parámetros
right
Referencia lvalue
a un objeto basic_fstream
.
Comentarios
La función miembro intercambia el contenido de este objeto por el contenido de right.
Consulte también
Seguridad para subprocesos en la biblioteca estándar de C++
Programación con iostream
Convenciones de iostreams