Se recomienda usar Visual Studio 2017

fpos (Clase)

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

La clase de plantilla describe un objeto que puede almacenar toda la información necesaria para restaurar un indicador de posición de archivo arbitraria en cualquier flujo. Un objeto de clase fpos<>St> eficazmente almacena objetos de al menos dos miembros:

  • Desplazamiento de bytes, del tipo streamoff.

  • Un estado de conversión, para su uso por un objeto de clase basic_filebuf, del tipo St, normalmente mbstate_t.

También puede almacenar una posición de archivo arbitrario para su uso por un objeto de clase basic_filebuf, del tipo fpos_t. Sin embargo, en un entorno con limitación de tamaño del archivo, puede que streamoff y fpos_t se usen a veces indistintamente. Para un entorno sin flujos que tengan una codificación dependiente del estado, mbstate_t puede en realidad estar sin usar. Por lo tanto, el número de objetos miembro almacenados puede variar.

template <class Statetype>  
class fpos  

Parámetros

Statetype
Información de estado.

Constructores

fposCrea un objeto que contiene información sobre una posición (desplazamiento) en un flujo.

Funciones miembro

seekposSe usa internamente en la biblioteca estándar de C++. No llame este método desde el código.
estadoEstablece o devuelve el estado de la conversión.

Operadores

operador! =Indicadores de posición de archivo de las pruebas para desigualdad.
operator +Incrementa un indicador de posición de archivo.
+= (operador)Incrementa un indicador de posición de archivo.
operator-Disminuye un indicador de posición de archivo.
operador =Disminuye un indicador de posición de archivo.
operador ==Indicadores de posición de archivo de las pruebas para igualdad.
operador streamoffConvierte objetos de tipo fpos a objetos de tipo streamoff.

Encabezado:<>>

Espacio de nombres: std

Crea un objeto que contiene información sobre una posición (desplazamiento) en un flujo.

fpos(streamoff _Off =0);

fpos(Statetype _State, fpos_t _Filepos);

Parámetros

_Off
Desplazamiento en la secuencia.

_State
El estado inicial de la fpos objeto.

_Filepos
Desplazamiento en la secuencia.

Comentarios

El primer constructor almacena el desplazamiento _Offrelativa al principio del archivo y en el estado de conversión inicial (si es que es importante). Si _Off es -1, el objeto resultante representa una posición de la secuencia no válida.

El segundo constructor almacena un desplazamiento cero y el objeto _State.

Indicadores de posición de archivo de las pruebas para desigualdad.

bool operator!=(const fpos<Statetype>& right) const;

Parámetros

right
El indicador de posición de archivo en el que se va a comparar.

Valor devuelto

True si los indicadores de posición de archivo no son iguales; en caso contrario false.

Comentarios

La función miembro devuelve ! ( *this == right).

Ejemplo

// fpos_op_neq.cpp  
// compile with: /EHsc  
#include <fstream>  
#include <iostream>  
  
int main( )  
{  
   using namespace std;  
  
   fpos<int> pos1, pos2;  
   ifstream file;  
   char c;  
  
   // Compare two fpos object  
   if ( pos1 != pos2 )  
      cout << "File position pos1 and pos2 are not equal" << endl;  
   else  
      cout << "File position pos1 and pos2 are equal" << endl;  
  
   file.open( "fpos_op_neq.txt" );  
   file.seekg( 0 );   // Goes to a zero-based position in the file  
   pos1 = file.tellg( );  
   file.get( c);  
   cout << c << endl;  
  
   // Increment pos1  
   pos1 += 1;  
   file.get( c );  
   cout << c << endl;  
  
   pos1 = file.tellg( ) - fpos<int>( 2);  
   file.seekg( pos1 );  
   file.get( c );  
   cout << c << endl;  
  
   // Increment pos1  
   pos1 = pos1 + fpos<int>( 1 );  
   file.get(c);  
   cout << c << endl;  
  
   pos1 -= fpos<int>( 2 );  
   file.seekg( pos1 );  
   file.get( c );  
   cout << c << endl;  
  
   file.close( );  
}  

Incrementa un indicador de posición de archivo.

fpos<Statetype> operator+(streamoff _Off) const;

Parámetros

_Off
El desplazamiento por la que va a incrementar el indicador de posición de archivo.

Valor devuelto

Posición en el archivo.

Comentarios

La función miembro devuelve fpos (*esto) += _Off.

Ejemplo

Consulte operador! = para obtener un ejemplo del uso de operator+.

Incrementa un indicador de posición de archivo.

fpos<Statetype>& operator+=(streamoff _Off);

Parámetros

_Off
El desplazamiento por la que va a incrementar el indicador de posición de archivo.

Valor devuelto

Posición en el archivo.

Comentarios

Agrega la función miembro _Off el objeto miembro desplazamiento almacenado y, a continuación, devuelve ** *esto**. Para la posición dentro de un archivo, el resultado generalmente sólo es válido para binary secuencias que no tienen una codificación dependiente del estado.

Ejemplo

Consulte operador! = para obtener un ejemplo del uso de operator+=.

Disminuye un indicador de posición de archivo.

streamoff operator-(const fpos<Statetype>& right) const;

 
fpos<Statetype> operator-(streamoff _Off) const;

Parámetros

right
Posición de archivo.

_Off
Desplazamiento de la secuencia.

Valor devuelto

La primera función miembro devuelve (streamoff)*esto - (streamoff)right. La segunda función miembro devuelve fpos (*esto)-= _Off.

Ejemplo

Consulte operador! = para obtener un ejemplo del uso de operator-.

Disminuye un indicador de posición de archivo.

fpos<Statetype>& operator-=(streamoff _Off);

Parámetros

_Off
Desplazamiento de la secuencia.

Valor devuelto

La función miembro devuelve fpos (*esto)-= _Off.

Comentarios

Para la posición dentro de un archivo, el resultado generalmente sólo es válido para binary secuencias que no tienen una codificación dependiente del estado.

Ejemplo

Consulte operador! = para obtener un ejemplo del uso de operator-=.

Indicadores de posición de archivo de las pruebas para igualdad.

bool operator==(const fpos<Statetype>& right) const;

Parámetros

right
El indicador de posición de archivo en el que se va a comparar.

Valor devuelto

True si los indicadores de posición de archivo son iguales; en caso contrario false.

Comentarios

La función miembro devuelve (streamoff)*este (streamoff) ==right.

Ejemplo

Consulte operador! = para obtener un ejemplo del uso de operator+=.

Convertir un objeto del tipo fpos al objeto del tipo streamoff.

''' operador streamoff() const;

  
### Remarks  
 The member function returns the stored offset member object and any additional offset stored as part of the `fpos_t` member object.  
  
### Example  
  

fpos_op_streampos.cpp
compilar con: / EHsc
#incluir
#incluir
#incluir

(principal) de int
{
uso de espacio de nombres std;
streamoff s;
archivo ofstream ("rdbuf.txt");

fpos<mbstate_t> f = () file.tellp;</mbstate_t>
Es equivalente a...
streampos f = file.tellp (de);
s = f;
cout< s="">< endl;></ endl;>
}

  
```Output  
0  

Este método se usa internamente por la biblioteca estándar de C++. No llame este método desde el código.

fpos_t seekpos() const;

Establece o devuelve el estado de la conversión.

Statetype state() const;

void state(Statetype _State);

Parámetros

_State
El nuevo estado de conversión.

Valor devuelto

El estado de la conversión.

Comentarios

La primera función miembro devuelve el valor almacenado en el St objeto miembro. La segunda función de miembro almacena _State en el St objeto miembro.

Ejemplo

// fpos_state.cpp  
// compile with: /EHsc  
#include <ios>  
#include <iostream>  
#include <fstream>  
  
int main() {  
   using namespace std;  
   streamoff s;  
   ifstream file( "fpos_state.txt" );  
  
   fpos<mbstate_t> f = file.tellg( );  
   char ch;  
   while ( !file.eof( ) )  
      file.get( ch );  
   s = f;  
   cout << f.state( ) << endl;  
   f.state( 9 );  
   cout << f.state( ) << endl;  
}  

Seguridad para subprocesos en la biblioteca estándar de C++
iostream de programación
Convenciones de iostreams

Mostrar: