basic_ios
Sınıf
Sınıf şablonu, hem giriş akışları (sınıf şablonu) hem de çıkış akışları (sınıf basic_ostream
şablonubasic_istream
) için ortak olan ve şablon parametrelerine bağlı olan depolama ve üye işlevlerini açıklar. (Sınıfıios_base
, şablon parametrelerine bağımlı olmayan ve yaygın olan şeyleri açıklar.) sınıfının basic_ios<class Elem, class Traits>
nesnesi, karakter özellikleri sınıfı Traits
tarafından belirlenen türündeki Elem
öğelerle bir akışı denetlemeye yardımcı olur.
Sözdizimi
template <class Elem, class Traits>
class basic_ios : public ios_base
Parametreler
Elem
Karakter türü.
Traits
Karakter türü hakkında bilgi sağlayan bir tür, varsayılan olarak olarak char_traits < Elem >
gösterilir.
Açıklamalar
Sınıf basic_ios<class Elem, class Traits>
depolarının nesnesi:
türünde
basic_istream<Elem, Traits>
bir nesneye yönelik bir bağlama işaretçisi.türünde
basic_streambuf<Elem, Traits >
bir nesneye yönelik akış arabelleği işaretçisi.türünde
char_type
bir nesnede dolgu karakteri.
Daha fazla bilgi için bkz. basic_istream
ve basic_streambuf
.
Oluşturucular
Oluşturucu | Açıklama |
---|---|
basic_ios |
sınıfını basic_ios oluşturur. |
Tür tanımları
Tür adı | Açıklama |
---|---|
char_type |
şablon parametresinin Elem eş anlamlısı. |
int_type |
için Traits::int_type bir eş anlamlı. |
off_type |
için Traits::off_type bir eş anlamlı. |
pos_type |
için Traits::pos_type bir eş anlamlı. |
traits_type |
şablon parametresinin Traits eş anlamlısı. |
Üye işlevleri
Üye işlevi | Açıklama |
---|---|
bad |
Akış arabelleğinin bütünlüğünün kaybını gösterir. |
clear |
Tüm hata bayraklarını temizler. |
copyfmt |
Bayrakları bir akıştan diğerine kopyalar. |
eof |
Akışın sonuna ulaşılıp ulaşılamadığını gösterir. |
exceptions |
Akış tarafından hangi özel durumların oluşturulacağını gösterir. |
fail |
Bir akıştan geçerli bir alan ayıklanmamasını gösterir. |
fill |
Metin akış kadar geniş olmadığında kullanılacak karakteri belirtir veya döndürür. |
good |
Akışın iyi durumda olduğunu gösterir. |
imbue |
Yerel ayarı değiştirir. |
init |
Oluşturucular tarafından basic_ios çağrılır. |
move |
İşaretçi dışında tüm değerleri akış arabelleğine, parametresinden geçerli nesneye taşır. |
narrow |
Verilen char_type bir ile eşdeğer karakteri bulur. |
rdbuf |
Akışı belirtilen arabelleğe yönlendirir. |
rdstate |
Bayraklar için bitlerin durumunu okur. |
set_rdbuf |
Bu akış nesnesinin okuma arabelleği olması için bir akış arabelleği atar. |
setstate |
Ek bayraklar ayarlar. |
swap |
Bu basic_ios nesnedeki değerleri başka bir basic_ios nesnenin değerleriyle değiştirir. Akış arabelleklerinin işaretçileri değiştirilmez. |
tie |
Bir akışın başka bir akış öncesinde işlenmesini sağlar. |
widen |
Belirli bir karaktere eşdeğeri char_type bulur. |
İşleçler
Operator | Açıklama |
---|---|
explicit operator bool |
Bir basic_ios nesnenin olarak bool kullanılmasına izin verir. Yaygın, istenmeyen yan etkileri önlemek için otomatik tür dönüştürme devre dışı bırakıldı. |
operator void * |
Akışın hala iyi olup olmadığını gösterir. |
operator! |
Akışın kötü olup olmadığını gösterir. |
Gereksinimler
Üstbilgi: <ios>
Ad alanı: std
basic_ios::bad
Akış arabelleğinin bütünlüğünün kaybını gösterir
bool bad() const;
Dönüş Değeri
true
sıfır rdstate & badbit
değilse; değilse false
.
hakkında badbit
daha fazla bilgi için bkz ios_base::iostate
. .
Örnek
// 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
sınıfını basic_ios
oluşturur.
explicit basic_ios(basic_streambuf<Elem, Traits>* sb);
basic_ios();
Parametreler
sb
Giriş veya çıkış öğelerini depolamak için standart arabellek.
Açıklamalar
İlk oluşturucu çağırarak init(_ Sb)
üye nesnelerini başlatır. İkinci (korumalı) oluşturucu, üye nesnelerini başlatılmamış olarak bırakır. Daha sonra yapılacak bir çağrının güvenli bir şekilde yok edilebilmesi için init
önce nesnesini başlatması gerekir.
basic_ios::char_type
şablon parametresinin Elem
eş anlamlısı.
typedef Elem char_type;
basic_ios::clear
Tüm hata bayraklarını temizler.
void clear(iostate state = goodbit, bool reraise = false);
void clear(io_state state);
Parametreler
state
(İsteğe bağlı) Tüm bayraklar temizlendikten sonra ayarlamak istediğiniz bayraklar. varsayılan değeridir goodbit
.
reraise
(İsteğe bağlı) Özel durumun yeniden tetiklenip yükseltilmeyeceğini belirtir. varsayılan değeridir false
(özel durumu yeniden yükseltmez).
Açıklamalar
Bayraklar , , failbit
eofbit
ve badbit
şeklindedirgoodbit
. , , bad
eof
ve ile good
bu bayrakları test edinfail
Üye işlevi, depolanan akış durumu bilgilerini şununla değiştirir:
state | (rdbuf != 0 goodbit : badbit)
Sıfır state&exceptions
değilse, sınıfına failure
ait bir nesnesi oluşturur.
Daha fazla bilgi için bkz. rdbuf
ve exceptions
.
Örnek
kullanan clear
örnekler için bkzrdstate
. ve getline
.
basic_ios::copyfmt
Bayrakları bir akıştan diğerine kopyalar.
basic_ios<Elem, Traits>& copyfmt(
const basic_ios<Elem, Traits>& right);
Parametreler
right
Bayraklarını kopyalamak istediğiniz akış.
Dönüş Değeri
this
Bayrakları kopyaladığınız akışın nesnesi.
Açıklamalar
Üye işlevi geri çağırma olayını erase_event
bildirir. Ardından öğesini dolgu karakterine*this
, bağlama işaretçisine ve biçimlendirme bilgilerine kopyalarright
. Özel durum maskesini değiştirmeden önce geri çağırma olayını copyfmt_event
bildirir. Kopyalama tamamlandıktan sonra sıfır state&exceptions
değilse, işlevi bağımsız değişkeniyle rdstate
etkin bir şekilde çağrırclear
. döndürür *this
.
Örnek
// 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
Akışın sonuna ulaşılıp ulaşılamadığını gösterir.
bool eof() const;
Dönüş Değeri
true
akışın sonuna ulaşıldıysa, false
aksi takdirde.
Açıklamalar
Üye işlevi sıfır değilse döndürür true
rdstate
& eofbit
. hakkında eofbit
daha fazla bilgi için bkz ios_base::iostate
. .
Örnek
// 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
Akış tarafından hangi özel durumların oluşturulacağını gösterir.
iostate exceptions() const;
void exceptions(iostate Newexcept);
void exceptions(io_state Newexcept);
Parametreler
Newexcept
Özel durum atmak istediğiniz bayraklar.
Dönüş Değeri
Şu anda akış için bir özel durum oluşturacak şekilde belirtilen bayraklar.
Açıklamalar
İlk üye işlevi depolanan özel durum maskesini döndürür. İkinci üye işlevi özel durum maskesinde depolar _Except
ve önceki depolanmış değerini döndürür. Yeni bir özel durum maskesinin depolanması, çağrısı clear
( rdstate
) gibi bir özel durum oluşturabilir.
Örnek
// 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
Bir akıştan geçerli bir alan ayıklanmamasını gösterir.
bool fail() const;
Dönüş Değeri
true
sıfır rdstate & (badbit|failbit)
değilse, değilse false
.
hakkında failbit
daha fazla bilgi için bkz ios_base::iostate
. .
Örnek
// 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
Metin akış kadar geniş olmadığında kullanılacak karakteri belirtir veya döndürür.
char_type fill() const;
char_type fill(char_type Char);
Parametreler
Char
Dolgu karakteri olarak istediğiniz karakter.
Dönüş Değeri
Geçerli dolgu karakteri.
Açıklamalar
İlk üye işlevi depolanan doldurma karakterini döndürür. İkinci üye işlevi doldurma karakterinde depolar Char
ve önceki depolanmış değerini döndürür.
Örnek
// 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
Akışın iyi durumda olduğunu gösterir.
bool good() const;
Dönüş Değeri
true
( rdstate == goodbit
hiçbir durum bayrağı ayarlanmadıysa), aksi takdirde , false
.
hakkında goodbit
daha fazla bilgi için bkz ios_base::iostate
. .
Örnek
kullanma good
örneği için bkzbasic_ios::bad
. .
basic_ios::imbue
Yerel ayarı değiştirir.
locale imbue(const locale& Loc);
Parametreler
Loc
Yerel ayar dizesi.
Dönüş Değeri
Önceki yerel ayar.
Açıklamalar
bir işaretçi değilse rdbuf
NULL
, üye işlevi çağırır
rdbuf-> pubimbue(_ Loc)
Her durumda döndürür ios_base::imbue(_ Loc)
.
Daha fazla bilgi için bkz. pubimbue
ve ios_base::imbue
.
Örnek
// 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
Oluşturucular tarafından basic_ios
çağrılır.
void init(basic_streambuf<Elem,Traits>* _Sb, bool _Isstd = false);
Parametreler
_Sb
Giriş veya çıkış öğelerini depolamak için standart arabellek.
_Isstd
Bunun standart bir akış olup olmadığını belirtir.
Açıklamalar
Üye işlevi tüm üye nesnelerinde değerleri depolar, böylece:
rdbuf
döndürür_Sb
.tie
birNULL
işaretçi döndürür.rdstate
_Sb
sıfır değilse döndürürgoodbit
; aksi takdirde döndürürbadbit
.exceptions
döndürürgoodbit
.flags
döndürürskipws | dec
. Daha fazla bilgi için bkz.skipws
vedec
.width
0 döndürür.precision
6 döndürür.fill
boşluk karakterini döndürür.getloc
döndürürlocale::classic
.iword
sıfır döndürür vepword
tüm bağımsız değişken değerleri için birNULL
işaretçi döndürür.
basic_ios::int_type
için traits_type::int_type
bir eş anlamlı.
typedef typename traits_type::int_type int_type;
basic_ios::move
İşaretçi dışında tüm değerleri akış arabelleğine, parametresinden geçerli nesneye taşır.
void move(basic_ios&& right);
Parametreler
right
ios_base
Değerlerin taşınacak nesnesi.
Açıklamalar
Korumalı üye işlevi, içinde değişmeyen right
ve içindeki right
*this
bir NULL
işaretçiye *this
ayarlanmış olan saklı dışında içinde depolanan stream buffer pointer
tüm değerleri konumuna taşır. depolanantie pointer
, içindeki right
bir NULL
işaretçiye ayarlanır.
basic_ios::narrow
Verilen char_type
bir ile eşdeğer karakteri bulur.
char narrow(char_type Char, char Default = '\0') const;
Parametreler
Char
char
Dönüştürülecek.
Default
Eşdeğeri char
bulunamazsa döndürülmesini istediğiniz değer.
Dönüş Değeri
Belirli char_type
bir ile eşdeğerdirchar
.
Açıklamalar
Üye işlevi döndürür use_facet<ctype<E>>(getloc()).narrow(Char, Default)
.
Daha fazla bilgi için bkz. use_facet
ve getloc
.
Örnek
// 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
için traits_type::off_type
bir eş anlamlı.
typedef typename traits_type::off_type off_type;
basic_ios::operator void *
Akışın hala iyi olup olmadığını gösterir.
operator void *() const;
Dönüş Değeri
işleci yalnızca ise fail
bir NULL
işaretçi döndürür.
Örnek
// 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!
Akışın kötü olup olmadığını gösterir.
bool operator!() const;
Dönüş Değeri
Çağırma ile aynı değeri döndürür basic_ios::fail
Örnek
// 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
Bir basic_ios
nesnenin olarak bool
kullanılmasına izin verir. Yaygın, istenmeyen yan etkileri önlemek için otomatik tür dönüştürme devre dışı bırakıldı.
explicit operator bool() const;
Açıklamalar
Akışta hata yoksa döndürür true
; aksi takdirde false
döndürür.
basic_ios::pos_type
için traits_type::pos_type
bir eş anlamlı.
typedef typename traits_type::pos_type pos_type;
basic_ios::rdbuf
Akışı belirtilen arabelleğe yönlendirir.
basic_streambuf<Elem, Traits> *rdbuf() const;
basic_streambuf<Elem, Traits> *rdbuf(
basic_streambuf<Elem, Traits>* _Sb);
Parametreler
_Sb
Bir akış.
Açıklamalar
İlk üye işlevi, depolanan akış arabelleği işaretçisini döndürür.
İkinci üye işlevi depolanan akış arabelleği işaretçisinde depolar _Sb
ve daha önce depolanan değeri döndürür.
Örnek
// 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
Akış hata durumunu okur.
iostate rdstate() const;
Dönüş Değeri
Depolanan akış durumu bilgileri.
Örnek
// 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
Belirtilen akış hata bayraklarını ayarlar (şu anda ayarlanmış akış hata durumu bayrakları değişmeden kalır):
flag | Açıklama |
---|---|
goodbit |
Hata yok |
badbit |
Kurtarılamıyor hatası |
failbit |
G/Ç işlemi biçimlendirme veya ayıklama hatası gibi başarısız oldu |
eofbit |
Stream dosyanın sonuna ulaştı |
void setstate(iostate _State);
Parametreler
_State
Ayarlanacağı ek bayraklar.
Açıklamalar
Üye işlevi temelde öğesini çağırır clear(_ state | rdstate)
.
Daha fazla bilgi için bkz. clear
ve rdstate
.
Örnek
// 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
Bu akış nesnesinin okuma arabelleği olması için bir akış arabelleği atar.
void set_rdbuf(
basic_streambuf<Elem, Tr>* strbuf)
Parametreler
strbuf
Okuma arabelleği olmak için akış arabelleği.
Açıklamalar
Korumalı üye işlevi akış arabelleği işaretçisinde depolar strbuf
. Çağrılmıyor clear
.
basic_ios::tie
Bir akışın başka bir akış öncesinde işlenmesini sağlar.
basic_ostream<Elem, Traits> *tie() const;
basic_ostream<Elem, Traits> *tie(
basic_ostream<Elem, Traits>* str);
Parametreler
str
Bir akış.
Dönüş Değeri
İlk üye işlevi depolanan bağlama işaretçisini döndürür. İkinci üye işlevi, bağlama işaretçisinde depolar str
ve önceki depolanmış değerini döndürür.
Açıklamalar
tie
iki akışın eşitlenmesine neden olur; örneğin, bir akış üzerindeki işlemler diğer akış üzerindeki işlemler tamamlandıktan sonra gerçekleşir.
Örnek
Aşağıdaki örnekte, öğesine bağlanarakcin
, dizenin Enter a number:
kendisinden numara ayıklanmadan cin
önce konsola gideceği garanti cout
edilir. Bu, sayı okunduğunda "Sayı girin:" dizesinin arabellekte hala oturma olasılığını ortadan kaldırır, böylece kullanıcının gerçekten yanıt vermesi gereken bir istem olduğundan eminiz. Varsayılan olarak cin
ve cout
bağlıdır.
#include <ios>
#include <iostream>
int main( )
{
using namespace std;
int i;
cin.tie( &cout );
cout << "Enter a number:";
cin >> i;
}
basic_ios::traits_type
şablon parametresinin Traits
eş anlamlısı.
typedef Traits traits_type;
basic_ios::widen
Belirli char
bir ile eşdeğerini char_type
bulur.
char_type widen(char Char) const;
Parametreler
Char
Dönüştürülecek karakter.
Dönüş Değeri
Belirli char
bir ile eşdeğerini char_type
bulur.
Açıklamalar
Üye işlevi döndürür use_facet<ctype<E>>(getloc).widen(Char)
.
Daha fazla bilgi için bkz. use_facet
ve getloc
.
Örnek
// 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
Bu basic_ios
nesnedeki değerleri başka bir basic_ios
nesnenin değerleriyle değiştirir. Ancak, akış arabellekleri işaretçileri değiştirilmez.
void swap(basic_ios&& right);
Parametreler
right
basic_ios
Değerleri değiştirmek için kullanılan nesne.
Açıklamalar
Korumalı üye işlevi ile depolanan tüm değerleri depolanmış right
*this
stream buffer pointer
dışında değiştirir.
Ayrıca bkz.
C++ Standart Kitaplığında İş Parçacığı Güvenliği
iostream
Programlama
iostreams
Kural -ları