Aracılığıyla paylaş


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ı Traitstarafı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.

  • Biçimlendirme bilgileri.

  • türündeki ios_basebir temel nesnede akış durumu bilgileri.

  • türünde char_typebir 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 Elemeş anlamlısı.
int_type için Traits::int_typebir eş anlamlı.
off_type için Traits::off_typebir eş anlamlı.
pos_type için Traits::pos_typebir eş anlamlı.
traits_type şablon parametresinin Traitseş 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_typebir 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 boolkullanı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 badbitdaha 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 Elemeş 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 , , failbiteofbitve badbitşeklindedirgoodbit. , , badeofve ile goodbu 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 failureait 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_eventbildirir. 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_eventbildirir. Kopyalama tamamlandıktan sonra sıfır state&exceptions değilse, işlevi bağımsız değişkeniyle rdstateetkin 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 eofbitdaha 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 failbitdaha 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 goodbitdaha 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 bir NULL 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ür goodbit.

  • flags döndürür skipws | dec. Daha fazla bilgi için bkz. skipws ve dec.

  • width 0 döndürür.

  • precision 6 döndürür.

  • fill boşluk karakterini döndürür.

  • getloc döndürür locale::classic.

  • iword sıfır döndürür ve pword tüm bağımsız değişken değerleri için bir NULL işaretçi döndürür.

basic_ios::int_type

için traits_type::int_typebir 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 *thisayarlanmış olan saklı dışında içinde depolanan stream buffer pointertüm değerleri konumuna taşır. depolanantie pointer, içindeki rightbir NULL işaretçiye ayarlanır.

basic_ios::narrow

Verilen char_typebir 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_typebir 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_typebir 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 failbir 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 boolkullanı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 falsedöndürür.

basic_ios::pos_type

için traits_type::pos_typebir 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 coutedilir. 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 Traitseş anlamlısı.

typedef Traits traits_type;

basic_ios::widen

Belirli charbir 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 charbir 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 pointerdışında değiştirir.

Ayrıca bkz.

C++ Standart Kitaplığında İş Parçacığı Güvenliği
iostream Programlama
iostreams Kural -ları