Bagikan melalui


Kelas fpos

Templat kelas menjelaskan objek yang dapat menyimpan semua informasi yang diperlukan untuk memulihkan indikator posisi file arbitrer dalam aliran apa pun. Objek kelas fpos<St> secara efektif menyimpan setidaknya dua objek anggota:

  • Offset byte, jenis streamoff.

  • Status konversi, untuk digunakan oleh objek kelas basic_filebuf, dari jenis St, biasanya mbstate_t.

Ini juga dapat menyimpan posisi file arbitrer, untuk digunakan oleh objek kelas basic_filebuf, dari jenis fpos_t. Namun, untuk lingkungan dengan ukuran file terbatas, streamoff dan fpos_t terkadang dapat digunakan secara bergantian. Untuk lingkungan tanpa aliran yang memiliki pengodean tergantung status, mbstate_t sebenarnya mungkin tidak digunakan. Oleh karena itu, jumlah objek anggota yang disimpan dapat bervariasi.

Sintaks

template <class Statetype>
class fpos

Parameter

Tipe status
Informasi status.

Konstruktor

Konstruktor Deskripsi
fpos Buat objek yang berisi informasi tentang posisi (offset) dalam aliran.

Fungsi anggota

Fungsi anggota Deskripsi
seekpos Digunakan secara internal oleh Pustaka Standar C++ saja. Jangan panggil metode ini dari kode Anda.
state Mengatur atau mengembalikan status konversi.

Operators

Operator Deskripsi
operator!= Menguji indikator posisi file untuk ketidaksamaan.
operator+ Menaikkan indikator posisi file.
operator+= Menaikkan indikator posisi file.
Operator- Mengurangi indikator posisi file.
operator-= Mengurangi indikator posisi file.
operator== Menguji indikator posisi file untuk kesetaraan.
streamoff operator Melemparkan objek jenis fpos ke objek jenis streamoff.

Persyaratan

Header:<ios>

Namespace: std

fpos::fpos

Buat objek yang berisi informasi tentang posisi (offset) dalam aliran.

fpos(streamoff _Off = 0);

fpos(Statetype _State, fpos_t _Filepos);

Parameter

_Off
Offset ke dalam aliran.

_Negara
Status awal fpos objek.

_Filepos
Offset ke dalam aliran.

Keterangan

Konstruktor pertama menyimpan _Off offset, relatif terhadap awal file dan dalam status konversi awal. Jika _Off adalah -1, objek yang dihasilkan mewakili posisi aliran yang tidak valid.

Konstruktor kedua menyimpan offset nol dan objek _State.

fpos::operator!=

Menguji indikator posisi file untuk ketidaksamaan.

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

Parameter

right
Indikator posisi file yang akan dibandingkan.

Tampilkan Nilai

true jika indikator posisi file tidak sama, jika tidak false.

Keterangan

Fungsi anggota mengembalikan !(*this == right).

Contoh

// 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+

Menaikkan indikator posisi file.

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

Parameter

_Off
Offset yang ingin Anda tingkatkan indikator posisi filenya.

Tampilkan Nilai

Posisi dalam file.

Keterangan

Fungsi anggota mengembalikan fpos(*this) +=_Off.

Contoh

Lihat operator!= untuk sampel penggunaan operator+.

fpos::operator+=

Menaikkan indikator posisi file.

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

Parameter

_Off
Offset yang ingin Anda tingkatkan indikator posisi filenya.

Tampilkan Nilai

Posisi dalam file.

Keterangan

Fungsi anggota menambahkan _Off ke objek anggota offset yang disimpan lalu mengembalikan *this. Saat bekerja dengan file, hasilnya hanya valid untuk aliran biner yang tidak memiliki pengodean tergantung status.

Contoh

Lihat operator!= untuk sampel penggunaan operator+=.

fpos::operator-

Mengurangi indikator posisi file.

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

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

Parameter

right
Posisi file.

_Off
Streaming offset.

Tampilkan Nilai

Fungsi anggota pertama mengembalikan (streamoff)*this - (streamoff) right. Fungsi anggota kedua mengembalikan fpos(*this) -= _Off.

Contoh

Lihat operator!= untuk sampel penggunaan operator-.

fpos::operator-=

Mengurangi indikator posisi file.

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

Parameter

_Off
Streaming offset.

Tampilkan Nilai

Fungsi anggota mengembalikan fpos(*this) -= _Off.

Keterangan

Saat bekerja dengan file, hasilnya hanya valid untuk aliran biner yang tidak memiliki pengodean tergantung status.

Contoh

Lihat operator!= untuk sampel penggunaan operator-=.

fpos::operator==

Menguji indikator posisi file untuk kesetaraan.

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

Parameter

right
Indikator posisi file yang akan dibandingkan.

Tampilkan Nilai

true jika indikator posisi file sama; jika tidak false.

Keterangan

Fungsi anggota mengembalikan (streamoff)*this == (streamoff)right.

Contoh

Lihat operator!= untuk sampel penggunaan operator+=.

fpos::operator streamoff

Objek cast jenis fpos ke objek jenis streamoff.

operator streamoff() const;

Keterangan

Fungsi anggota mengembalikan objek anggota offset yang disimpan dan offset tambahan yang disimpan sebagai bagian fpos_t dari objek anggota.

Contoh

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

Metode ini hanya digunakan secara internal oleh Pustaka Standar C++. Jangan panggil metode ini dari kode Anda.

fpos_t seekpos() const;

fpos::state

Mengatur atau mengembalikan status konversi.

Statetype state() const;

void state(Statetype _State);

Parameter

_Negara
Status konversi baru.

Tampilkan Nilai

Status konversi.

Keterangan

Fungsi anggota pertama mengembalikan nilai yang disimpan dalam St objek anggota. Fungsi anggota kedua menyimpan _State di St objek anggota.

Contoh

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

Baca juga

Keamanan utas di Pustaka Standar C++
Pemrograman iostream
Konvensi iostreams