Bagikan melalui


basic_ios Kelas

Templat kelas menjelaskan fungsi penyimpanan dan anggota yang umum untuk aliran input (templat basic_istreamkelas ) dan aliran output (templat basic_ostreamkelas ) yang bergantung pada parameter templat. (Kelas ios_base menjelaskan apa yang umum dan tidak bergantung pada parameter templat.) Objek kelas basic_ios<class Elem, class Traits> membantu mengontrol aliran dengan elemen jenis Elem, yang sifat karakternya ditentukan oleh kelas Traits.

Sintaks

template <class Elem, class Traits>
class basic_ios : public ios_base

Parameter

Elem
Jenis karakter.

Traits
Jenis yang menyediakan informasi tentang jenis karakter, default ke char_traits < Elem >.

Keterangan

Objek penyimpanan kelas basic_ios<class Elem, class Traits> :

Untuk informasi lebih lanjut, lihat basic_istream dan basic_streambuf.

Konstruktor

Konstruktor Deskripsi
basic_ios Membangun basic_ios kelas.

Typedefs

Nama jenis Deskripsi
char_type Sinonim untuk parameter Elemtemplat .
int_type Sinonim untuk Traits::int_type.
off_type Sinonim untuk Traits::off_type.
pos_type Sinonim untuk Traits::pos_type.
traits_type Sinonim untuk parameter Traitstemplat .

Fungsi anggota

Fungsi anggota Deskripsi
bad Menunjukkan hilangnya integritas buffer aliran.
clear Menghapus semua bendera kesalahan.
copyfmt Menyalin bendera dari satu aliran ke aliran lainnya.
eof Menunjukkan apakah akhir aliran telah tercapai.
exceptions Menunjukkan pengecualian mana yang akan dilemparkan oleh aliran.
fail Menunjukkan kegagalan untuk mengekstrak bidang yang valid dari aliran.
fill Menentukan atau mengembalikan karakter yang akan digunakan saat teks tidak selebar aliran.
good Menunjukkan aliran dalam kondisi baik.
imbue Mengubah lokal.
init Dipanggil oleh basic_ios konstruktor.
move Memindahkan semua nilai, kecuali penunjuk ke buffer aliran, dari parameter ke objek saat ini.
narrow Menemukan karakter yang setara dengan karakter tertentu char_type.
rdbuf Merutekan aliran ke buffer tertentu.
rdstate Membaca status bit untuk bendera.
set_rdbuf Menetapkan buffer aliran untuk menjadi buffer baca untuk objek aliran ini.
setstate Mengatur bendera tambahan.
swap Menukar nilai dalam objek ini basic_ios dengan objek lain basic_ios . Penunjuk ke buffer streaming tidak ditukar.
tie Memastikan bahwa satu aliran diproses sebelum aliran lain.
widen Menemukan yang setara char_type dengan karakter tertentu.

Operators

Operator Deskripsi
explicit operator bool Memungkinkan penggunaan basic_ios objek sebagai bool. Konversi jenis otomatis dinonaktifkan untuk mencegah efek samping umum yang tidak diinginkan.
operator void * Menunjukkan apakah aliran masih bagus.
operator! Menunjukkan apakah aliran tidak buruk.

Persyaratan

Header:<ios>

Ruang nama:std

basic_ios::bad

Menunjukkan hilangnya integritas buffer aliran

bool bad() const;

Tampilkan Nilai

true jika rdstate & badbit bukan nol; jika tidak false.

Untuk informasi selengkapnya tentang badbit, lihat ios_base::iostate.

Contoh

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

int main( void )
{
    using namespace std;
    bool b = cout.bad( );
    cout << boolalpha;
    cout << b << endl;

    b = cout.good( );
    cout << b << endl;
}

basic_ios::basic_ios

Membangun basic_ios kelas.

explicit basic_ios(basic_streambuf<Elem,  Traits>* sb);
basic_ios();

Parameter

sb
Buffer standar untuk menyimpan elemen input atau output.

Keterangan

Konstruktor pertama menginisialisasi objek anggotanya dengan memanggil init(_ Sb). Konstruktor kedua (dilindungi) membuat objek anggotanya tidak diinisialisasi. Panggilan selanjutnya untuk init harus menginisialisasi objek sebelum dapat dihancurkan dengan aman.

basic_ios::char_type

Sinonim untuk parameter Elemtemplat .

typedef Elem char_type;

basic_ios::clear

Menghapus semua bendera kesalahan.

void clear(iostate state = goodbit, bool reraise = false);
void clear(io_state state);

Parameter

state
(Opsional) Bendera yang ingin Anda atur setelah menghapus semua bendera. Default ke goodbit.

reraise
(Opsional) Menentukan apakah pengecualian harus dinaikkan kembali. Default ke false (tidak akan menaikkan kembali pengecualian).

Keterangan

Benderanya adalah goodbit, , failbiteofbit, dan badbit. Uji bendera ini dengan good, bad, eof, dan fail

Fungsi anggota menggantikan informasi status aliran tersimpan dengan:

state | (rdbuf != 0 goodbit : badbit)

Jika state&exceptions bukan nol, itu kemudian melempar objek kelas failure.

Untuk informasi lebih lanjut, lihat rdbuf dan exceptions.

Contoh

Lihat rdstate dan getline untuk contoh menggunakan clear.

basic_ios::copyfmt

Menyalin bendera dari satu aliran ke aliran lainnya.

basic_ios<Elem, Traits>& copyfmt(
const basic_ios<Elem, Traits>& right);

Parameter

right
Aliran yang benderanya ingin Anda salin.

Tampilkan Nilai

Objek this untuk aliran tempat Anda menyalin bendera.

Keterangan

Fungsi anggota melaporkan peristiwa erase_eventpanggilan balik . Kemudian menyalin dari right ke dalam *this karakter isian, penunjuk dasi, dan informasi pemformatan. Sebelum mengubah masker pengecualian, ia melaporkan peristiwa copyfmt_eventpanggilan balik . Jika setelah salinan selesai, state&exceptions bukan nol, fungsi secara efektif memanggil clear dengan argumen rdstate. Hal ini mengembalikan *this.

Contoh

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

int main( )
{
    using namespace std;
    ofstream x( "test.txt" );
    int i = 10;

    x << showpos;
    cout << i << endl;
    cout.copyfmt( x );
    cout << i << endl;
}

basic_ios::eof

Menunjukkan apakah akhir aliran telah tercapai.

bool eof() const;

Tampilkan Nilai

true jika akhir aliran telah tercapai, false jika tidak.

Keterangan

Fungsi anggota mengembalikan true jika rdstate& eofbit bukan nol. Untuk informasi selengkapnya tentang eofbit, lihat ios_base::iostate.

Contoh

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

using namespace std;

int main( int argc, char* argv[] )
{
    fstream   fs;
    int n = 1;
    fs.open( "basic_ios_eof.txt" );   // an empty file
    cout << boolalpha
    cout << fs.eof() << endl;
    fs >> n;   // Read the char in the file
    cout << fs.eof() << endl;
}

basic_ios::exceptions

Menunjukkan pengecualian mana yang akan dilemparkan oleh aliran.

iostate exceptions() const;
void exceptions(iostate Newexcept);
void exceptions(io_state Newexcept);

Parameter

Newexcept
Bendera yang ingin Anda berikan pengecualian.

Tampilkan Nilai

Bendera yang saat ini ditentukan untuk melemparkan pengecualian untuk aliran.

Keterangan

Fungsi anggota pertama mengembalikan masker pengecualian yang disimpan. Fungsi anggota kedua disimpan _Except dalam masker pengecualian dan mengembalikan nilai tersimpan sebelumnya. Menyimpan masker pengecualian baru dapat melemparkan pengecualian seperti panggilan clear( rdstate ).

Contoh

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

int main( )
{
    using namespace std;

    cout << cout.exceptions( ) << endl;
    cout.exceptions( ios::eofbit );
    cout << cout.exceptions( ) << endl;
    try
    {
        cout.clear( ios::eofbit );   // Force eofbit on
    }
    catch ( exception &e )
    {
        cout.clear( );
        cout << "Caught the exception." << endl;
        cout << "Exception class: " << typeid(e).name()  << endl;
        cout << "Exception description: " << e.what() << endl;
    }
}
0
1
Caught the exception.
Exception class: class std::ios_base::failure
Exception description: ios_base::eofbit set

basic_ios::fail

Menunjukkan kegagalan untuk mengekstrak bidang yang valid dari aliran.

bool fail() const;

Tampilkan Nilai

true jika rdstate & (badbit|failbit) bukan nol, jika tidak false.

Untuk informasi selengkapnya tentang failbit, lihat ios_base::iostate.

Contoh

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

int main( void )
{
    using namespace std;
    bool b = cout.fail( );
    cout << boolalpha;
    cout << b << endl;
}

basic_ios::fill

Menentukan atau mengembalikan karakter yang akan digunakan saat teks tidak selebar aliran.

char_type fill() const;
char_type fill(char_type Char);

Parameter

Char
Karakter yang Anda inginkan sebagai karakter isian.

Tampilkan Nilai

Karakter isian saat ini.

Keterangan

Fungsi anggota pertama mengembalikan karakter isian tersimpan. Fungsi anggota kedua disimpan Char dalam karakter isian dan mengembalikan nilai tersimpan sebelumnya.

Contoh

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

int main( )
{
    using namespace std;

    cout << setw( 5 ) << 'a' << endl;
    cout.fill( 'x' );
    cout << setw( 5 ) << 'a' << endl;
    cout << cout.fill( ) << endl;
}
a
xxxxa
x

basic_ios::good

Menunjukkan aliran dalam kondisi baik.

bool good() const;

Tampilkan Nilai

true jika rdstate == goodbit (tidak ada bendera status yang diatur), jika tidak, false.

Untuk informasi selengkapnya tentang goodbit, lihat ios_base::iostate.

Contoh

Lihat basic_ios::bad contoh penggunaan good.

basic_ios::imbue

Mengubah lokal.

locale imbue(const locale& Loc);

Parameter

Loc
String lokal.

Tampilkan Nilai

Lokal sebelumnya.

Keterangan

Jika rdbuf bukan penunjuk NULL , fungsi anggota memanggil

rdbuf-> pubimbue(_ Loc)

Bagaimanapun, ia mengembalikan ios_base::imbue(_ Loc).

Untuk informasi lebih lanjut, lihat pubimbue dan ios_base::imbue.

Contoh

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

int main( )
{
    using namespace std;

    cout.imbue( locale( "french_france" ) );
    double x = 1234567.123456;
    cout << x << endl;
}

basic_ios::init

Dipanggil oleh basic_ios konstruktor.

void init(basic_streambuf<Elem,Traits>* _Sb, bool _Isstd = false);

Parameter

_Sb
Buffer standar untuk menyimpan elemen input atau output.

_Isstd
Menentukan apakah ini adalah aliran standar.

Keterangan

Fungsi anggota menyimpan nilai di semua objek anggota, sehingga:

  • rdbuf menghasilkan _Sb.

  • tie mengembalikan pointer NULL .

  • rdstategoodbit mengembalikan jika _Sb bukan nol; jika tidak, ia mengembalikan badbit.

  • exceptions menghasilkan goodbit.

  • flags menghasilkan skipws | dec. Untuk informasi lebih lanjut, lihat skipws dan dec.

  • width mengembalikan 0.

  • precision mengembalikan 6.

  • fill mengembalikan karakter spasi.

  • getloc menghasilkan locale::classic.

  • iword mengembalikan nol, dan pword mengembalikan NULL penunjuk untuk semua nilai argumen.

basic_ios::int_type

Sinonim untuk traits_type::int_type.

typedef typename traits_type::int_type int_type;

basic_ios::move

Memindahkan semua nilai, kecuali penunjuk ke buffer aliran, dari parameter ke objek saat ini.

void move(basic_ios&& right);

Parameter

right
Objek ios_base untuk memindahkan nilai.

Keterangan

Fungsi anggota yang dilindungi memindahkan semua nilai yang disimpan right ke *this kecuali yang disimpan stream buffer pointer, yang tidak berubah dan diatur right ke NULL penunjuk di *this. tie pointer Disimpan diatur ke NULL penunjuk di right.

basic_ios::narrow

Menemukan karakter yang setara dengan karakter tertentu char_type.

char narrow(char_type Char, char Default = '\0') const;

Parameter

Char
yang char akan dikonversi.

Default
char yang ingin Anda kembalikan jika tidak ada yang setara yang ditemukan.

Tampilkan Nilai

Setara dengan char .char_type

Keterangan

Fungsi anggota mengembalikan use_facet<ctype<E>>(getloc()).narrow(Char, Default).

Untuk informasi lebih lanjut, lihat use_facet dan getloc.

Contoh

// basic_ios_narrow.cpp
// compile with: /EHsc
#include <ios>
#include <iostream>
#include <wchar.h>

int main( )
{
    using namespace std;
    wchar_t *x = L"test";
    char y[10];
    cout << x[0] << endl;
    wcout << x << endl;
    y[0] = wcout.narrow( x[0] );
    cout << y[0] << endl;
}

basic_ios::off_type

Sinonim untuk traits_type::off_type.

typedef typename traits_type::off_type off_type;

basic_ios::operator void *

Menunjukkan apakah aliran masih bagus.

operator void *() const;

Tampilkan Nilai

Operator mengembalikan pointer NULL hanya jika fail.

Contoh

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

int main( )
{
    using namespace std;
    cout << (bool)(&cout != 0) << endl;   // Stream is still good
}
1

basic_ios::operator!

Menunjukkan apakah aliran tidak buruk.

bool operator!() const;

Tampilkan Nilai

Mengembalikan yang sama dengan panggilan basic_ios::fail

Contoh

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

int main( )
{
    using namespace std;
    cout << !cout << endl;   // Stream is not bad
}
0

basic_ios::operator bool

Memungkinkan penggunaan basic_ios objek sebagai bool. Konversi jenis otomatis dinonaktifkan untuk mencegah efek samping umum yang tidak diinginkan.

explicit operator bool() const;

Keterangan

Mengembalikan true jika aliran tidak memiliki kesalahan; jika tidak false.

basic_ios::pos_type

Sinonim untuk traits_type::pos_type.

typedef typename traits_type::pos_type pos_type;

basic_ios::rdbuf

Merutekan aliran ke buffer tertentu.

basic_streambuf<Elem, Traits> *rdbuf() const;
basic_streambuf<Elem, Traits> *rdbuf(
basic_streambuf<Elem, Traits>* _Sb);

Parameter

_Sb
Aliran.

Keterangan

Fungsi anggota pertama mengembalikan penunjuk buffer aliran tersimpan.

Fungsi anggota kedua disimpan _Sb di penunjuk buffer aliran tersimpan dan mengembalikan nilai yang disimpan sebelumnya.

Contoh

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

int main( )
{
    using namespace std;
    ofstream file( "rdbuf.txt" );
    streambuf *x = cout.rdbuf( file.rdbuf( ) );
    cout << "test" << endl;   // Goes to file
    cout.rdbuf(x);
    cout << "test2" << endl;
}
test2

basic_ios::rdstate

Membaca status kesalahan aliran.

iostate rdstate() const;

Tampilkan Nilai

Informasi status aliran tersimpan.

Contoh

// basic_ios_rdstate.cpp
// compile with: /EHsc
#include <iostream>
#include <fstream>
using namespace std;

void TestFlags( ios& x )
{
    cout << ( x.rdstate( ) & ios::badbit ) << endl;
    cout << ( x.rdstate( ) & ios::failbit ) << endl;
    cout << ( x.rdstate( ) & ios::eofbit ) << endl;
    cout << endl;
}

int main( )
{
    fstream x( "c:\test.txt", ios::out );
    x.clear( );
    TestFlags( x );
    x.clear( ios::badbit | ios::failbit | ios::eofbit );
    TestFlags( x );
}
0
0
0

4
2
1

basic_ios::setstate

Mengatur bendera kesalahan aliran yang ditentukan (saat ini mengatur bendera status kesalahan aliran tetap tidak berubah):

bendera Deskripsi
goodbit Tidak ada kesalahan
badbit Kesalahan yang tidak dapat dipulihkan
failbit Operasi I/O gagal, seperti kesalahan pemformatan atau ekstraksi
eofbit Aliran telah mencapai akhir file
void setstate(iostate _State);

Parameter

_State
Bendera tambahan yang akan diatur.

Keterangan

Fungsi anggota pada dasarnya memanggil clear(_ state | rdstate).

Untuk informasi lebih lanjut, lihat clear dan rdstate.

Contoh

// basic_ios_setstate.cpp
// compile with: /EHsc
#include <ios>
#include <iostream>
using namespace std;

int main( )
{
    bool b = cout.bad( );
    cout << b << endl;   // Good
    cout.clear( ios::badbit );
    b = cout.bad( );
    // cout.clear( );
    cout << b << endl;   // Is bad, good
    b = cout.fail( );
    cout << b << endl;   // Not failed
    cout.setstate( ios::failbit );
    b = cout.fail( );
    cout.clear( );
    cout << b << endl;   // Is failed, good
    return 0;
}
0
1

basic_ios::set_rdbuf

Menetapkan buffer aliran untuk menjadi buffer baca untuk objek aliran ini.

void set_rdbuf(
basic_streambuf<Elem, Tr>* strbuf)

Parameter

strbuf
Buffer aliran untuk menjadi buffer baca.

Keterangan

Fungsi anggota yang dilindungi disimpan strbuf di penunjuk buffer aliran. Ini tidak memanggil clear.

basic_ios::tie

Memastikan bahwa satu aliran diproses sebelum aliran lain.

basic_ostream<Elem, Traits> *tie() const;
basic_ostream<Elem, Traits> *tie(
basic_ostream<Elem, Traits>* str);

Parameter

str
Aliran.

Tampilkan Nilai

Fungsi anggota pertama mengembalikan penunjuk dasi tersimpan. Fungsi anggota kedua disimpan str di penunjuk dasi dan mengembalikan nilai tersimpan sebelumnya.

Keterangan

tie menyebabkan dua aliran disinkronkan, sehingga, operasi pada satu aliran terjadi setelah operasi pada aliran lain selesai.

Contoh

Dalam contoh berikut, dengan mengikat cin ke cout, dijamin bahwa Enter a number: string akan masuk ke konsol sebelum angka itu sendiri diekstrak dari cin. Ini menghilangkan kemungkinan bahwa string "Masukkan angka:" masih duduk di buffer ketika angka dibaca, sehingga kami yakin bahwa pengguna benar-benar memiliki beberapa permintaan untuk merespons. Secara default, cin dan cout terikat.

#include <ios>
#include <iostream>

int main( )
{
    using namespace std;
    int i;
    cin.tie( &cout );
    cout << "Enter a number:";
    cin >> i;
}

basic_ios::traits_type

Sinonim untuk parameter Traitstemplat .

typedef Traits traits_type;

basic_ios::widen

Menemukan yang setara char_typechardengan .

char_type widen(char Char) const;

Parameter

Char
Karakter yang akan dikonversi.

Tampilkan Nilai

Menemukan yang setara char_typechardengan .

Keterangan

Fungsi anggota mengembalikan use_facet<ctype<E>>(getloc).widen(Char).

Untuk informasi lebih lanjut, lihat use_facet dan getloc.

Contoh

// basic_ios_widen.cpp
// compile with: /EHsc
#include <ios>
#include <iostream>
#include <wchar.h>

int main( )
{
    using namespace std;
    char *z = "Hello";
    wchar_t y[2] = {0,0};
    cout << z[0] << endl;
    y[0] = wcout.widen( z[0] );
    wcout << &y[0] << endl;
}

basic_ios::swap

Menukar nilai dalam objek ini basic_ios dengan objek lain basic_ios . Namun, penunjuk ke buffer streaming tidak ditukar.

void swap(basic_ios&& right);

Parameter

right
Objek basic_ios yang digunakan untuk bertukar nilai.

Keterangan

Fungsi anggota yang dilindungi bertukar semua nilai yang disimpan dengan right*this kecuali yang disimpan stream buffer pointer.

Baca juga

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