Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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> :
Penunjuk ikatan ke objek jenis
basic_istream<Elem, Traits>.Penunjuk buffer aliran ke objek jenis
basic_streambuf<Elem, Traits >.Mengalirkan informasi status dalam objek dasar jenis
ios_base.Karakter isian dalam objek jenis
char_type.
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. |
Operator
| 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>
kumpulan nama XML: 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:
rdbufmenghasilkan_Sb.tiemengembalikan pointerNULL.rdstategoodbitmengembalikan jika_Sbbukan nol; jika tidak, ia mengembalikanbadbit.exceptionsmenghasilkangoodbit.flagsmenghasilkanskipws | dec. Untuk informasi lebih lanjut, lihatskipwsdandec.widthmengembalikan 0.precisionmengembalikan 6.fillmengembalikan karakter spasi.getlocmenghasilkanlocale::classic.iwordmengembalikan nol, danpwordmengembalikanNULLpenunjuk 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_type chardengan .
char_type widen(char Char) const;
Parameter
Char
Karakter yang akan dikonversi.
Tampilkan Nilai
Menemukan yang setara char_type chardengan .
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.
Lihat juga
Keamanan utas di Pustaka Standar C++
iostream Pemrograman
iostreams Konvensi