Bagikan melalui


ios_base Kelas

Kelas ini menjelaskan fungsi penyimpanan dan anggota yang umum untuk aliran input dan output yang tidak bergantung pada parameter templat. (Templat basic_ios kelas menjelaskan apa yang umum dan bergantung pada parameter templat.)

Objek kelas ios_base menyimpan informasi pemformatan, yang terdiri dari:

  • Format bendera dalam objek jenis fmtflags.

  • Masker pengecualian dalam objek jenis iostate.

  • Lebar bidang dalam objek jenis int.

  • Presisi tampilan dalam objek jenis int.

  • Objek locale dalam objek jenis locale.

  • Dua array yang dapat diperluas, dengan elemen jenis long dan void penunjuk.

Objek kelas ios_base juga menyimpan informasi status aliran, dalam objek jenis iostate, dan tumpukan panggilan balik.

Anggota

Konstruktor

Nama Deskripsi
ios_base Membuat ios_base objek.

Typedefs

Nama Deskripsi
event_callback Menjelaskan fungsi yang diteruskan ke register_call.
fmtflags Konstanta untuk menentukan tampilan output.
iostate Menentukan konstanta yang menjelaskan status aliran.
openmode Menjelaskan cara berinteraksi dengan aliran.
seekdir Menentukan titik awal untuk operasi offset.

Enums

Nama Deskripsi
event Menentukan jenis peristiwa.

Konstanta

Nama Deskripsi
adjustfield Bitmask didefinisikan sebagai internalright | left | .
app Menentukan pencarian ke akhir aliran sebelum setiap penyisipan.
ate Menentukan pencarian ke akhir aliran saat objek pengontrolnya pertama kali dibuat.
badbit Mencatat hilangnya integritas buffer aliran.
basefield Bitmask didefinisikan sebagai decoct | hex | .
beg Menentukan pencarian relatif terhadap awal urutan.
binary Menentukan bahwa file harus dibaca sebagai aliran biner, bukan sebagai aliran teks.
boolalpha Menentukan penyisipan atau ekstraksi objek jenis bool sebagai nama (seperti true dan false) daripada sebagai nilai numerik.
cur Menentukan pencarian relatif terhadap posisi saat ini dalam urutan.
dec Menentukan penyisipan atau ekstraksi nilai bilangan bulat dalam format desimal.
end Menentukan pencarian relatif terhadap akhir urutan.
eofbit Merekam akhir file saat mengekstrak dari aliran.
failbit Merekam kegagalan untuk mengekstrak bidang yang valid dari aliran.
fixed Menentukan penyisipan nilai floating-point dalam format titik tetap (tanpa bidang eksponen).
floatfield Bitmask didefinisikan sebagai fixed | scientific
goodbit Semua bit status bersih.
hex Menentukan penyisipan atau ekstraksi nilai bilangan bulat dalam format heksadesimal.
in Menentukan ekstraksi dari aliran.
internal Bantalan ke lebar bidang dengan menyisipkan karakter isian pada titik internal ke bidang numerik yang dihasilkan.
left Menentukan justifikasi kiri.
oct Menentukan penyisipan atau ekstraksi nilai bilangan bulat dalam format oktal.
out Menentukan penyisipan ke aliran.
right Menentukan justifikasi yang tepat.
scientific Menentukan penyisipan nilai floating-point dalam format ilmiah (dengan bidang eksponen).
showbase Menentukan penyisipan awalan yang mengungkapkan dasar bidang bilangan bulat yang dihasilkan.
showpoint Menentukan penyisipan tanpa syarat dari titik desimal dalam bidang floating-point yang dihasilkan.
showpos Menentukan penyisipan tanda plus dalam bidang numerik yang dihasilkan nonnegatif.
skipws Menentukan melewati spasi kosong di depan sebelum ekstraksi tertentu.
trunc Menentukan penghapusan isi file yang ada ketika objek pengontrolnya dibuat.
unitbuf Menyebabkan output dibersihkan setelah setiap penyisipan.
uppercase Menentukan penyisipan huruf besar yang setara dengan huruf kecil dalam penyisipan tertentu.

Fungsi

Nama Deskripsi
failure Kelas anggota berfungsi sebagai kelas dasar untuk semua pengecualian yang dilemparkan oleh fungsi anggota yang jelas dalam templat basic_ioskelas .
flags Mengatur atau mengembalikan pengaturan bendera saat ini.
getloc Mengembalikan objek tersimpan locale .
imbue Mengubah lokal.
Init Membuat objek standar iostream saat dibangun.
iword Menetapkan nilai untuk disimpan sebagai iword.
precision Menentukan jumlah digit yang akan ditampilkan dalam angka floating-point.
pword Menetapkan nilai untuk disimpan sebagai pword.
register_callback Menentukan fungsi panggilan balik.
setf Mengatur bendera yang ditentukan.
sync_with_stdio Memastikan bahwa iostream dan operasi pustaka run-time C terjadi dalam urutan muncul dalam kode sumber.
unsetf Menyebabkan bendera yang ditentukan nonaktif.
width Mengatur panjang aliran output.
xalloc Menentukan bahwa variabel harus menjadi bagian dari aliran.

Operator

Nama Deskripsi
operator= Operator penugasan untuk ios_base objek.

Persyaratan

Header: <ios>

kumpulan nama XML: std

event

Menentukan jenis peristiwa.

enum event {
    erase_event,
    imbue_event,
    copyfmt_event};

Keterangan

Jenisnya adalah jenis enumerasi yang menjelaskan objek yang dapat menyimpan peristiwa panggilan balik yang digunakan sebagai argumen ke fungsi yang terdaftar dengan register_callback. Nilai peristiwa yang berbeda adalah:

  • copyfmt_event, untuk mengidentifikasi panggilan balik yang terjadi di dekat akhir panggilan ke copyfmt, tepat sebelum masker pengecualian disalin.

  • erase_event, untuk mengidentifikasi panggilan balik yang terjadi di awal panggilan ke copyfmt, atau di awal panggilan ke destruktor untuk *this.

  • imbue_event, untuk mengidentifikasi panggilan balik yang terjadi di akhir panggilan ke imbue, tepat sebelum fungsi kembali.

Contoh

Lihat register_callback sebagai contoh.

event_callback

Menjelaskan fungsi yang diteruskan ke register_call.

typedef void (__cdecl *event_callback)(
    event _E,
    ios_base& _Base,
    int _I);

Parameter

_E
event.

_Base
Aliran tempat peristiwa dipanggil.

_I
Nomor yang ditentukan pengguna.

Keterangan

Jenis ini menjelaskan penunjuk ke fungsi yang dapat didaftarkan dengan register_callback. Jenis fungsi ini tidak boleh melemparkan pengecualian.

Contoh

Lihat register_call contoh yang menggunakan event_callback.

failure

Kelas failure mendefinisikan kelas dasar untuk jenis semua objek yang dilemparkan sebagai pengecualian, oleh fungsi di iostreams pustaka, untuk melaporkan kesalahan yang terdeteksi selama operasi buffer aliran.

namespace std {
    class failure : public system_error {
    public:
        explicit failure(
            const string& _Message,
            const error_code& _Code = io_errc::stream);

        explicit failure(
            const char* str,
            const error_code& _Code = io_errc::stream);
    };
}

Keterangan

Nilai yang dikembalikan oleh what() adalah salinan , _Messagemungkin bertambah dengan pengujian berdasarkan _Code. Jika _Code tidak ditentukan, nilai defaultnya adalah make_error_code(io_errc::stream).

Contoh

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

int main ( )
{
    using namespace std;
    fstream file;
    file.exceptions(ios::failbit);
    try
    {
        file.open( "rm.txt", ios_base::in );
        // Opens nonexistent file for reading
    }
    catch( ios_base::failure f )
    {
        cout << "Caught an exception: " << f.what() << endl;
    }
}
Caught an exception: ios_base::failbit set

flags

Mengatur atau mengembalikan pengaturan bendera saat ini.

fmtflags flags() const;
fmtflags flags(fmtflags fmtfl);

Parameter

fmtfl
Pengaturan baru fmtflags .

Tampilkan Nilai

Pengaturan sebelumnya atau saat ini fmtflags .

Keterangan

Lihat ios_base::fmtflags untuk daftar bendera.

Fungsi anggota pertama mengembalikan bendera format tersimpan. Fungsi anggota kedua disimpan fmtfl dalam bendera format dan mengembalikan nilai tersimpan sebelumnya.

Contoh

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

int main ( )
{
    using namespace std;
    cout << cout.flags( ) << endl;
    cout.flags( ios::dec | ios::boolalpha );
    cout << cout.flags( );
}
513
16896

fmtflags

Konstanta untuk menentukan tampilan output.

class ios_base {
public:
   typedef implementation-defined-bitmask-type fmtflags;
   static const fmtflags boolalpha;
   static const fmtflags dec;
   static const fmtflags fixed;
   static const fmtflags hex;
   static const fmtflags internal;
   static const fmtflags left;
   static const fmtflags oct;
   static const fmtflags right;
   static const fmtflags scientific;
   static const fmtflags showbase;
   static const fmtflags showpoint;
   static const fmtflags showpos;
   static const fmtflags skipws;
   static const fmtflags unitbuf;
   static const fmtflags uppercase;
   static const fmtflags adjustfield;
   static const fmtflags basefield;
   static const fmtflags floatfield;
   // ...
};

Keterangan

Mendukung manipulator di ios.

Jenisnya adalah jenis bitmask yang menjelaskan objek yang dapat menyimpan bendera format. Nilai bendera (elemen) yang berbeda adalah:

  • dec, untuk menyisipkan atau mengekstrak nilai bilangan bulat dalam format desimal.

  • hex, untuk menyisipkan atau mengekstrak nilai bilangan bulat dalam format heksadesimal.

  • oct, untuk menyisipkan atau mengekstrak nilai bilangan bulat dalam format oktal.

  • showbase, untuk menyisipkan awalan yang mengungkapkan dasar bidang bilangan bulat yang dihasilkan.

  • internal, untuk pad ke lebar bidang sesuai kebutuhan dengan menyisipkan karakter isian pada titik internal ke bidang numerik yang dihasilkan. (Untuk informasi tentang mengatur lebar bidang, lihat setw).

  • left, untuk pad ke lebar bidang sesuai kebutuhan dengan menyisipkan karakter isian di akhir bidang yang dihasilkan (pembenaran kiri).

  • right, untuk pad ke lebar bidang sesuai kebutuhan dengan menyisipkan karakter isian di awal bidang yang dihasilkan (pertimbangan kanan).

  • boolalpha, untuk menyisipkan atau mengekstrak objek jenis bool sebagai nama (seperti true dan false) daripada sebagai nilai numerik.

  • fixed, untuk menyisipkan nilai floating-point dalam format titik tetap (tanpa bidang eksponen).

  • scientific, untuk menyisipkan nilai floating-point dalam format ilmiah (dengan bidang eksponen).

  • showpoint, untuk menyisipkan titik desimal tanpa syarat di bidang floating-point yang dihasilkan.

  • showpos, untuk menyisipkan tanda plus di bidang numerik yang dihasilkan nonnegatif.

  • skipws, untuk melewati spasi kosong di depan sebelum ekstraksi tertentu.

  • unitbuf, untuk menghapus output setelah setiap penyisipan.

  • uppercase, untuk menyisipkan huruf besar yang setara dengan huruf kecil dalam penyisipan tertentu.

Selain itu, beberapa nilai yang berguna adalah:

  • adjustfield, bitmask yang didefinisikan sebagai internal | left | right

  • basefield, didefinisikan sebagai dec | hex | oct

  • floatfield, didefinisikan sebagai fixed | scientific

Untuk contoh fungsi yang memodifikasi bendera format ini, lihat <iomanip>.

getloc

Mengembalikan objek tersimpan locale .

locale getloc() const;

Tampilkan Nilai

Objek tersimpan locale .

Contoh

// ios_base_getlock.cpp
// compile with: /EHsc
#include <iostream>

int main( )
{
    using namespace std;
    cout << cout.getloc( ).name( ).c_str( ) << endl;
}
C

imbue

Mengubah lokal.

locale imbue(const locale& _Loc);

Parameter

_Loc
Pengaturan lokal baru.

Tampilkan Nilai

Lokal sebelumnya.

Keterangan

Fungsi anggota disimpan _Loc di locale objek lalu melaporkan peristiwa panggilan balik dan imbue_event. Ini mengembalikan nilai tersimpan sebelumnya.

Contoh

Lihat basic_ios::imbue untuk sampel.

Init

Membuat objek standar iostream saat dibangun.

class Init { };

Keterangan

Kelas berlapis menjelaskan objek yang konstruksinya memastikan bahwa objek standar iostream dibangun dengan benar, bahkan sebelum eksekusi konstruktor untuk objek statis sewenang-wenang.

ios_base

Membuat ios_base objek.

ios_base();

Keterangan

Konstruktor (dilindungi) tidak melakukan apa pun. Panggilan selanjutnya ke basic_ios::init harus menginisialisasi objek sebelum dapat dihancurkan dengan aman. Dengan demikian, satu-satunya penggunaan yang aman untuk kelas ios_base adalah sebagai kelas dasar untuk templat basic_ioskelas .

iostate

Jenis konstanta yang menjelaskan status aliran.

class ios_base {
public:
   typedef implementation-defined-bitmask-type iostate;
   static const iostate badbit;
   static const iostate eofbit;
   static const iostate failbit;
   static const iostate goodbit;
   // ...
};

Keterangan

Jenisnya adalah jenis bitmask yang menjelaskan objek yang dapat menyimpan informasi status aliran. Nilai bendera (elemen) yang berbeda adalah:

  • badbit, untuk merekam hilangnya integritas buffer aliran.
  • eofbit, untuk merekam akhir file saat mengekstrak dari aliran.
  • failbit, untuk merekam kegagalan mengekstrak bidang yang valid dari aliran.

Selain itu, nilai yang berguna adalah goodbit, di mana tidak ada bit yang disebutkan sebelumnya yang ditetapkan (goodbit dijamin nol).

iword

Menetapkan nilai untuk disimpan sebagai iword.

long& iword(int idx);

Parameter

idx
Indeks nilai yang akan disimpan sebagai iword.

Keterangan

Fungsi anggota mengembalikan referensi ke idx elemen dari array yang dapat diperluas dengan elemen jenis long. Semua elemen hadir secara efektif dan awalnya menyimpan nilai nol. Referensi yang dikembalikan tidak valid setelah panggilan berikutnya ke iword untuk objek, setelah objek diubah oleh panggilan ke basic_ios::copyfmt, atau setelah objek dihancurkan.

Jika idx negatif atau jika penyimpanan unik tidak tersedia untuk elemen , fungsi memanggil setstate(badbit) dan mengembalikan referensi yang mungkin tidak unik.

Untuk mendapatkan indeks unik, untuk digunakan di semua objek jenis ios_base, panggil xalloc.

Contoh

Lihat xalloc untuk sampel cara menggunakan iword.

openmode

Menjelaskan cara berinteraksi dengan aliran.

class ios_base {
public:
   typedef implementation-defined-bitmask-type openmode;
   static const openmode  in;
   static const openmode  out;
   static const openmode  ate;
   static const openmode  app;
   static const openmode  trunc;
   static const openmode  binary;
   // ...
};

Keterangan

Mode pembukaan untuk beberapa iostream objek. Nilai bendera adalah:

Terus-menerus Efek
app Mencari ke akhir aliran sebelum setiap penulisan
ate Mencari ke akhir aliran segera setelah terbuka
binary Buka dalam mode biner. (Lihat fopen untuk deskripsi mode biner.)
in Buka untuk membaca
out Buka untuk menulis
trunc Menghapus konten file setelah dibuka

Contoh

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

int main ( )
{
    using namespace std;
    fstream file;
    file.open( "rm.txt", ios_base::out | ios_base::trunc );

    file << "testing";
}

operator=

Operator penugasan untuk ios_base objek.

ios_base& operator=(const ios_base& right);

Parameter

right
Objek jenis ios_base.

Tampilkan Nilai

Objek yang ditetapkan.

Keterangan

Operator menyalin informasi pemformatan tersimpan, membuat salinan baru dari array yang dapat diperluas. Kemudian mengembalikan *this. Tumpukan panggilan balik tidak disalin.

Operator ini hanya digunakan oleh kelas yang berasal dari ios_base.

precision

Menentukan jumlah digit yang akan ditampilkan dalam angka floating-point.

streamsize precision() const;
streamsize precision(streamsize _Prec);

Parameter

_Prec
Jumlah digit signifikan untuk ditampilkan, atau jumlah digit setelah titik desimal dalam notasi tetap.

Tampilkan Nilai

Fungsi anggota pertama mengembalikan presisi tampilan tersimpan. Fungsi anggota kedua disimpan _Prec dalam presisi tampilan dan mengembalikan nilai tersimpan sebelumnya.

Keterangan

Angka floating-point ditampilkan dalam notasi tetap dengan fixed.

Contoh

// ios_base_precision.cpp
// compile with: /EHsc
#include <iostream>

int main( )
{
    using namespace std;
    float i = 31.31234F;

    cout.precision( 3 );
    cout << i << endl;          // display three significant digits
    cout << fixed << i << endl; // display three digits after decimal
                                // point
}
31.3
31.312

pword

Menetapkan nilai untuk disimpan sebagai pword.

void *& pword(int index);

Parameter

index
Indeks nilai yang akan disimpan sebagai pword.

Keterangan

Fungsi anggota mengembalikan referensi ke indeks elemen array yang dapat diperluas dengan elemen penunjuk jenisvoid. Semua elemen hadir secara efektif dan awalnya menyimpan pointer null. Referensi yang dikembalikan tidak valid setelah panggilan berikutnya ke pword untuk objek, setelah objek diubah oleh panggilan ke basic_ios::copyfmt, atau setelah objek dihancurkan.

Jika indeks negatif, atau jika penyimpanan unik tidak tersedia untuk elemen , fungsi memanggil setstate(badbit) dan mengembalikan referensi yang mungkin tidak unik.

Untuk mendapatkan indeks unik, untuk digunakan di semua objek jenis ios_base, panggil xalloc.

Contoh

Lihat xalloc contoh penggunaan pword.

register_callback

Menentukan fungsi panggilan balik.

void register_callback(
    event_callback pfn, int idx);

Parameter

pfn
Penunjuk ke fungsi panggilan balik.

idx
Nomor yang ditentukan pengguna.

Keterangan

Fungsi anggota mendorong pasangan {pfn, idx} ke tumpukan panggilan balik tumpukan panggilan balik yang disimpan. Ketika ev peristiwa panggilan balik dilaporkan, fungsi dipanggil, dalam urutan terbalik registri, oleh ekspresi (*pfn)(ev, *this, idx).

Contoh

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

using namespace std;

void callback1( ios_base::event e, ios_base& stream, int arg )
{
    cout << "in callback1" << endl;
    switch ( e )
    {
    case ios_base::erase_event:
        cout << "an erase event" << endl;
        break;
    case ios_base::imbue_event:
        cout << "an imbue event" << endl;
        break;
    case ios_base::copyfmt_event:
        cout << "an copyfmt event" << endl;
        break;
    };
}

void callback2( ios_base::event e, ios_base& stream, int arg )
{
    cout << "in callback2" << endl;
    switch ( e )
    {
    case ios_base::erase_event:
        cout << "an erase event" << endl;
        break;
    case ios_base::imbue_event:
        cout << "an imbue event" << endl;
        break;
    case ios_base::copyfmt_event:
        cout << "an copyfmt event" << endl;
        break;
    };
}

int main( )
{
    // Make sure the imbue will not throw an exception
    // assert( setlocale( LC_ALL, "german" )!=NULL );

    cout.register_callback( callback1, 0 );
    cin.register_callback( callback2, 0 );

    try
    {
        // If no exception because the locale's not found,
        // generate an imbue_event on callback1
        cout.imbue(locale("german"));
    }
    catch(...)
    {
        cout << "exception" << endl;
    }

    // This will
    // (1) erase_event on callback1
    // (2) copyfmt_event on callback2
    cout.copyfmt(cin);

    // We get two erase events from callback2 at the end because
    // both cin and cout have callback2 registered when cin and cout
    // are destroyed at the end of program.
}
in callback1
an imbue event
in callback1
an erase event
in callback2
an copyfmt event
in callback2
an erase event
in callback2
an erase event

seekdir

Menentukan titik awal untuk operasi offset.

namespace std {
    class ios_base {
    public:
        typedef implementation-defined-enumerated-type seekdir;
        static const seekdir beg;
        static const seekdir cur;
        static const seekdir end;
        // ...
    };
}

Keterangan

Jenisnya adalah jenis enumerasi yang menjelaskan objek yang dapat menyimpan mode pencarian yang digunakan sebagai argumen untuk fungsi anggota dari beberapa iostream kelas. Nilai bendera yang berbeda adalah:

  • beg, untuk mencari (mengubah posisi baca atau tulis saat ini) relatif terhadap awal urutan (array, stream, atau file).

  • cur, untuk mencari relatif terhadap posisi saat ini dalam urutan.

  • end, untuk mencari relatif terhadap akhir urutan.

Contoh

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

int main ( )
{
    using namespace std;
    fstream file;
    file.open( "rm.txt", ios_base::out | ios_base::trunc );

    file << "testing";
    file.seekp( 0, ios_base::beg );
    file << "a";
    file.seekp( 0, ios_base::end );
    file << "a";
}

setf

Mengatur bendera yang ditentukan.

fmtflags setf(
    fmtflags _Mask
);
fmtflags setf(
    fmtflags _Mask,
    fmtflags _Unset
);

Parameter

_Mask
Bendera yang akan dinyalakan.

_Unset
Bendera yang akan dimatikan.

Tampilkan Nilai

Bendera format sebelumnya

Keterangan

Fungsi anggota pertama secara efektif memanggil flags(_Mask | _Flags) (mengatur bit yang dipilih) lalu mengembalikan bendera format sebelumnya. Fungsi anggota kedua secara efektif memanggil flags(_Mask & fmtfl, flags & ~_Mask) (mengganti bit yang dipilih di bawah masker) lalu mengembalikan bendera format sebelumnya.

Contoh

// ios_base_setf.cpp
// compile with: /EHsc
#include <iostream>

int main( )
{
    using namespace std;
    int i = 10;
    cout << i << endl;

    cout.unsetf( ios_base::dec );
    cout.setf( ios_base::hex );
    cout << i << endl;

    cout.setf( ios_base::dec );
    cout << i << endl;
    cout.setf( ios_base::hex, ios_base::dec );
    cout << i << endl;
}

sync_with_stdio

Memastikan bahwa iostream dan operasi pustaka run-time C terjadi dalam urutan muncul dalam kode sumber.

static bool sync_with_stdio(
   bool _Sync = true
);

Parameter

_Sync
Apakah semua aliran sinkron dengan stdio.

Tampilkan Nilai

Pengaturan sebelumnya untuk fungsi ini.

Keterangan

Fungsi anggota statis menyimpan stdio bendera sinkronisasi, yang awalnya trueadalah . Ketika true, bendera ini memastikan bahwa operasi pada file yang sama disinkronkan dengan benar antara iostreams fungsi dan fungsi yang ditentukan dalam Pustaka Standar C++. Jika tidak, sinkronisasi mungkin atau mungkin tidak dijamin, tetapi performa dapat ditingkatkan. Fungsi disimpan _Sync dalam stdio bendera sinkronisasi dan mengembalikan nilai tersimpan sebelumnya. Anda dapat menyebutnya dengan andal hanya sebelum melakukan operasi apa pun pada aliran standar.

unsetf

Menonaktifkan bendera yang ditentukan.

void unsetf(
   fmtflags _Mask
);

Parameter

_Mask
Bendera yang ingin Anda nonaktifkan.

Keterangan

Fungsi anggota secara efektif memanggil flags(~_Mask & flags) (bersihkan bit yang dipilih).

Contoh

Lihat ios_base::setf untuk sampel penggunaan unsetf.

width

Mengatur panjang aliran output.

streamsize width( ) const;
streamsize width(
   streamsize _Wide
);

Parameter

_Wide
Ukuran aliran output yang diinginkan.

Tampilkan Nilai

Pengaturan lebar saat ini.

Keterangan

Fungsi anggota pertama mengembalikan lebar bidang yang disimpan. Fungsi anggota kedua disimpan _Wide di lebar bidang dan mengembalikan nilai tersimpan sebelumnya.

Contoh

// ios_base_width.cpp
// compile with: /EHsc
#include <iostream>

int main( ) {
    using namespace std;

    cout.width( 20 );
    cout << cout.width( ) << endl;
    cout << cout.width( ) << endl;
}
20
0

xalloc

Menentukan bahwa variabel adalah bagian dari aliran.

static int xalloc( );

Tampilkan Nilai

Fungsi anggota statis mengembalikan nilai statis tersimpan, yang meningkat pada setiap panggilan.

Keterangan

Anda dapat menggunakan nilai pengembalian sebagai argumen indeks unik saat memanggil fungsi iword anggota atau pword.

Contoh

// ios_base_xalloc.cpp
// compile with: /EHsc
// Lets you store user-defined information.
// iword, jword, xalloc
#include <iostream>

int main( )
{
    using namespace std;

    static const int i = ios_base::xalloc();
    static const int j = ios_base::xalloc();
    cout.iword( i ) = 11;
    cin.iword( i ) = 13;
    cin.pword( j ) = "testing";
    cout << cout.iword( i ) << endl;
    cout << cin.iword( i ) << endl;
    cout << ( char * )cin.pword( j ) << endl;
}
11
13
testing

Lihat juga

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