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
, biasanyambstate_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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk