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
St
mbstate_t
bir sınıf basic_filebuf nesnesi tarafından kullanılmak üzere dönüştürme durumu.
Ayrıca, türündeki fpos_t
bir 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 streamoff dö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ı