Aracılığıyla paylaş


fpos Sınıfı

Sınıf şablonu, herhangi bir akış içinde rastgele bir dosya konumu göstergesini geri yüklemek için gereken tüm bilgileri depolayan bir nesneyi açıklar. fpos<St> sınıfının bir nesnesi en az iki üye nesnesini etkili bir şekilde depolar:

  • Streamoff türünde bir bayt uzaklığı.

  • genellikle türünde Stmbstate_tbir sınıf basic_filebuf nesnesi tarafından kullanılmak üzere dönüştürme durumu.

Ayrıca, türündeki fpos_tbir sınıf basic_filebuf nesnesi tarafından kullanılmak üzere rastgele bir dosya konumu depolayabilir. Bununla birlikte, streamoff sınırlı dosya boyutuna sahip bir ortam için ve fpos_t bazen birbirinin yerine kullanılabilir. Durum bağımlı kodlaması mbstate_t olan akışları olmayan bir ortam için aslında kullanılmamış olabilir. Bu nedenle, depolanan üye nesnelerinin sayısı değişebilir.

Sözdizimi

template <class Statetype>
class fpos

Parametreler

Statetype
Durum bilgileri.

Oluşturucular

Oluşturucu Açıklama
fpos Bir akıştaki konum (uzaklık) hakkında bilgi içeren bir nesne oluşturun.

Üye işlevleri

Üye işlevi Açıklama
seekpos Yalnızca C++ Standart Kitaplığı tarafından dahili olarak kullanılır. Bu yöntemi kodunuzdan çağırmayın.
state Dönüştürme durumunu ayarlar veya döndürür.

İşleçler

Operator Açıklama
operator!= Eşitsizlik için dosya konumu göstergelerini sınar.
işleç+ Dosya konumu göstergesini artırır.
operator+= Dosya konumu göstergesini artırır.
operatör- Dosya konumu göstergesini azaltma.
operator-= Dosya konumu göstergesini azaltma.
operator== Eşitlik için dosya konumu göstergelerini sınar.
işleç streamoff Türün nesnesini türüne fpos streamoffdönüştürür.

Gereksinimler

Üst Bilgi:<ios>

Ad alanı: std

fpos::fpos

Bir akıştaki konum (uzaklık) hakkında bilgi içeren bir nesne oluşturun.

fpos(streamoff _Off = 0);

fpos(Statetype _State, fpos_t _Filepos);

Parametreler

_Kapalı
Akışa uzaklık.

_Devlet
Nesnenin fpos başlangıç durumu.

_Filepos
Akışa uzaklık.

Açıklamalar

İlk oluşturucu, dosyanın başına ve ilk dönüştürme durumuna göre uzaklık _Off depolar. _Off -1 ise, sonuçta elde edilen nesne geçersiz bir akış konumunu temsil eder.

İkinci oluşturucu sıfır uzaklığı depolar ve nesne _State.

fpos::operator!=

Eşitsizlik için dosya konumu göstergelerini sınar.

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

Parametreler

Sağ
Karşılaştırılan dosya konumu göstergesi.

Dönüş Değeri

true dosya konumu göstergeleri eşit değilse, aksi takdirde false.

Açıklamalar

Üye işlevi döndürür !(*this == right).

Örnek

// 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( );
}

fpos::operator+

Dosya konumu göstergesini artırır.

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

Parametreler

_Kapalı
Dosya konumu göstergesini artırmak istediğiniz uzaklık.

Dönüş Değeri

Dosyadaki konum.

Açıklamalar

Üye işlevi döndürür fpos(*this) +=_Off.

Örnek

kullanma operator+örneği için bkz. işleç!= .

fpos::operator+=

Dosya konumu göstergesini artırır.

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

Parametreler

_Kapalı
Dosya konumu göstergesini artırmak istediğiniz uzaklık.

Dönüş Değeri

Dosyadaki konum.

Açıklamalar

Üye işlevi depolanan uzaklık üye nesnesine _Off ekler ve döndürür*this. Dosyalarla çalışırken, sonuç yalnızca duruma bağımlı kodlaması olmayan ikili akışlar için geçerlidir.

Örnek

kullanma operator+=örneği için bkz. işleç!= .

fpos::operator-

Dosya konumu göstergesini azaltma.

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

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

Parametreler

Sağ
Dosya konumu.

_Kapalı
Akış uzaklığı.

Dönüş Değeri

İlk üye işlevi döndürür (streamoff)*this - (streamoff) right. İkinci üye işlevi döndürür fpos(*this) -= _Off.

Örnek

kullanma operator-örneği için bkz. işleç!= .

fpos::operator-=

Dosya konumu göstergesini azaltma.

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

Parametreler

_Kapalı
Akış uzaklığı.

Dönüş Değeri

Üye işlevi döndürür fpos(*this) -= _Off.

Açıklamalar

Dosyalarla çalışırken, sonuç yalnızca duruma bağımlı kodlaması olmayan ikili akışlar için geçerlidir.

Örnek

kullanma operator-=örneği için bkz. işleç!= .

fpos::operator==

Eşitlik için dosya konumu göstergelerini sınar.

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

Parametreler

Sağ
Karşılaştırılan dosya konumu göstergesi.

Dönüş Değeri

true dosya konumu göstergeleri eşitse; aksi takdirde false.

Açıklamalar

Üye işlevi döndürür (streamoff)*this == (streamoff)right.

Örnek

kullanma operator+=örneği için bkz. işleç!= .

fpos::operator streamoff

Türün nesnesini türüne fpos dönüştür streamoff.

operator streamoff() const;

Açıklamalar

Üye işlevi, depolanan uzaklık üye nesnesini ve üye nesnesinin parçası olarak depolanan tüm ek uzaklıkları fpos_t döndürür.

Örnek

// fpos_op_streampos.cpp
// compile with: /EHsc
#include <ios>
#include <iostream>
#include <fstream>

int main( )
{
   using namespace std;
   streamoff s;
   ofstream file( "rdbuf.txt");

   fpos<mbstate_t> f = file.tellp( );
   // Is equivalent to ..
   // streampos f = file.tellp( );
   s = f;
   cout << s << endl;
}
0

fpos::seekpos

Bu yöntem yalnızca C++ Standart Kitaplığı tarafından dahili olarak kullanılır. Bu yöntemi kodunuzdan çağırmayın.

fpos_t seekpos() const;

fpos::state

Dönüştürme durumunu ayarlar veya döndürür.

Statetype state() const;

void state(Statetype _State);

Parametreler

_Devlet
Yeni dönüştürme durumu.

Dönüş Değeri

Dönüştürme durumu.

Açıklamalar

İlk üye işlevi, üye nesnesinde St depolanan değeri döndürür. İkinci üye işlevi, üye nesnesinde St _State depolar.

Örnek

// 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;
}

Ayrıca bkz.

C++ Standart Kitaplığında İş Parçacığı Güvenliği
iostream Programlaması
iostreams Kuralları