Aracılığıyla paylaş


basic_istream Sınıf

Karakter özellikleri olarak da bilinen traits_typesınıfı Trtarafından belirlenen , olarak char_typeda bilinen , türündeki Char_Töğelerle bir akış arabelleğinden öğelerin ve kodlanmış nesnelerin ayıklandığını denetleyen bir nesneyi açıklar.

Sözdizimi

template <class Char_T, class Tr = char_traits<Char_T>>
class basic_istream : virtual public basic_ios<Char_T, Tr>

Açıklamalar

Aşırı yükleyen operator>> üye işlevlerin çoğu biçimlendirilmiş giriş işlevleridir. Deseni izler:

iostate state = goodbit;
const sentry ok(*this);

if (ok)
{
    try
    {
        /*extract elements and convert
            accumulate flags in state.
            store a successful conversion*/
    }
    catch (...)
    {
        try
        {
            setstate(badbit);

        }
        catch (...)
        {
        }
        if ((exceptions()& badbit) != 0)
            throw;
    }
}
setstate(state);

return (*this);

Diğer birçok üye işlevi biçimlendirilmemiş giriş işlevleridir. Deseni izler:

iostate state = goodbit;
count = 0;    // the value returned by gcount
const sentry ok(*this, true);

if (ok)
{
    try
    {
        /* extract elements and deliver
            count extracted elements in count
            accumulate flags in state */
    }
    catch (...)
    {
        try
        {
            setstate(badbit);

        }
        catch (...)
        {
        }
        if ((exceptions()& badbit) != 0)
            throw;
    }
}
setstate(state);

Her iki işlev grubu da öğeleri ayıklarken dosya sonuyla karşılaşırlarsa çağırır setstate(eofbit) . Daha fazla bilgi için bkz. setstate.

Sınıf basic_istream<Char_T, Tr> depolarının nesnesi:

  • sınıfının basic_ios<Char_T, Tr>sanal ortak temel nesnesi. Daha fazla bilgi için bkz. basic_ios.

  • Biçimlendirilmemiş son giriş işlemi için bir ayıklama sayısı (önceki kodda çağrılır count ).

Örnek

Giriş akışları hakkında daha fazla bilgi edinmek için basic_ifstream Sınıf örneğine bakın.

Oluşturucular

Oluşturucu Açıklama
basic_istream türünde basic_istreambir nesnesi oluşturur.

Üye işlevleri

Üye işlevi Açıklama
gcount Biçimlendirilmemiş son giriş sırasında okunan karakter sayısını döndürür.
get Giriş akışından bir veya daha fazla karakter okur.
getline Giriş akışından bir satır okur.
ignore Geçerli okuma konumundan atlanan bir dizi öğeye neden olur.
peek Okunacak sonraki karakteri döndürür.
putback Belirtilen karakteri akışa yerleştirir.
read Akıştan belirtilen sayıda karakteri okur ve bunları bir dizide depolar.
readsome Yalnızca arabellekten okuma.
seekg Akıştaki okuma konumunu taşır.
sentry İç içe geçmiş sınıfı, bildirimi biçimlendirilmiş giriş işlevlerini ve biçimlendirilmemiş giriş işlevlerini yapılandırılmış bir nesneyi açıklar.
swap Sağlanan basic_istream nesne parametresi için bu basic_istream nesneyi değiştirir.
sync Akışın ilişkili giriş cihazını akışın arabelleğiyle eşitler.
tellg Akıştaki geçerli okuma konumunu bildirir.
unget En son okunan karakteri akışa geri yerleştirir.

İşleçler

Operator Açıklama
operator>> Giriş akışındaki bir işlevi çağırır veya biçimlendirilmiş verileri giriş akışından okur.
operator= basic_istream işlecin sağ tarafındaki öğesini bu nesneye atar. Arkasında bir kopya bırakmayan bir rvalue başvuru içeren taşıma ataması.

Gereksinimler

Üstbilgi: <istream>

Ad alanı: std

basic_istream::basic_istream

türünde basic_istreambir nesnesi oluşturur.

explicit basic_istream(
    basic_streambuf<Char_T, Tr>* strbuf,
    bool _Isstd = false);

basic_istream(basic_istream&& right);

Parametreler

strbuf
basic_streambuf türünde bir nesne.

_Isstd
true standart bir akışsa; aksi takdirde , false.

right
basic_istream Kopyalanacak nesne.

Açıklamalar

İlk oluşturucu, çağrısı init(strbuf)yaparak temel sınıfı başlatır. Ayrıca ayıklama sayısı içinde sıfır depolar. Daha fazla bilgi için bkz. init. Bu ayıklama sayısı hakkında daha fazla bilgi için Sınıfa genel bakış bölümünün basic_istream Açıklamalar bölümüne bakın.

İkinci oluşturucu, çağrısı move(right)yaparak temel sınıfı başlatır. Ayrıca ayıklama sayımında depolar right.gcount() ve için rightayıklama sayımında sıfır depolar.

Örnek

Giriş akışları hakkında daha fazla bilgi edinmek için basic_ifstream::basic_ifstream örneğine bakın.

basic_istream::gcount

Biçimlendirilmemiş son giriş sırasında okunan karakter sayısını döndürür.

streamsize gcount() const;

Dönüş Değeri

Çıkarma sayısı.

Açıklamalar

Biçimlendirilmemiş karakterleri okumak için kullanın basic_istream::get .

Örnek

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

int main( )
{
   cout << "Type the letter 'a': ";

   ws( cin );
   char c[10];

   cin.get( &c[0],9 );
   cout << c << endl;

   cout << cin.gcount( ) << endl;
}
a
Type the letter 'a': a
1

basic_istream::get

Giriş akışından bir veya daha fazla karakter okur.

int_type get();

basic_istream<Char_T, Tr>& get(Char_T& Ch);
basic_istream<Char_T, Tr>& get(Char_T* str, streamsize count);
basic_istream<Char_T, Tr>& get(Char_T* str, streamsize count, Char_T delimiter);

basic_istream<Char_T, Tr>& get(basic_streambuf<Char_T, Tr>& strbuf);
basic_istream<Char_T, Tr>& get(basic_streambuf<Char_T, Tr>& strbuf, Char_T delimiter);

Parametreler

count
'den strbufokunacak karakter sayısı.

delimiter
daha önce countkarşılaşılırsa, okuma işlemini sonlandırması gereken karakter.

str
Yazacak bir dize.

Ch
Alınacak bir karakter.

strbuf
Yazıldığı arabellek.

Dönüş Değeri

parametresiz biçimi get , okunan öğeyi bir tamsayı veya dosya sonu olarak döndürür. Kalan formlar akışı ()*this döndürür.

Açıklamalar

İlk biçimlendirilmemiş giriş işlevi, döndürerek rdbuf->sbumpcbir öğeyi mümkünse ayıklar. Aksi takdirde döndürür traits_type::eof. İşlev hiçbir öğe ayıklamazsa öğesini çağırır setstate(failbit). Daha fazla bilgi için bkz. setstate.

İkinci işlev, öğeyi int_type meta aynı şekilde ayıklar. ile eşitse meta traits_type::eof, işlevi öğesini çağırır setstate(failbit). Aksi takdirde içinde depolar traits_type::to_char_type(meta) Ch. işlevi döndürür *this. Daha fazla bilgi için bkz. to_char_type.

Üçüncü işlev döndürür get(str, count, widen('\n')).

Dördüncü işlev öğeleri ayıklar count - 1 ve öğesinden başlayarak strdizide depolar. Her zaman depolandığı char_type ayıklanan öğelerden sonra depolar. Test sırasına göre ayıklama durdurulur:

  • Dosyanın sonunda.

  • İşlev, ile eşit delimiterolan bir öğeyi ayıkladıktan sonra. Bu durumda, öğesi denetlenen diziye geri konur.

  • İşlev öğeleri ayıkladıktan count - 1 sonra.

İşlev hiçbir öğe ayıklamazsa öğesini çağırır setstate(failbit). Her durumda döndürür *this.

Beşinci işlev döndürür get(strbuf, widen('\n')).

Altıncı işlev öğeleri ayıklar ve içine strbufekler. Ayıklama, dosya sonunda veya ayıklanmamış ile eşit delimiterolan bir öğede durur. Ayrıca, ekleme başarısız olursa veya bir özel durum oluşturursa (yakalanmış ancak yeniden değil) söz konusu öğeyi ayıklamadan durur. İşlev hiçbir öğe ayıklamazsa öğesini çağırır setstate(failbit). Her durumda işlevi döndürür *this.

Örnek

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

int main( )
{
   char c[10];

   c[0] = cin.get( );
   cin.get( c[1] );
   cin.get( &c[2],3 );
   cin.get( &c[4], 4, '7' );

   cout << c << endl;
}
1111

basic_istream::getline

Giriş akışından bir satır alır.

basic_istream<Char_T, Tr>& getline(
    char_type* str,
    streamsize count);

basic_istream<Char_T, Tr>& getline(
    char_type* str,
    streamsize count,
    char_type delimiter);

Parametreler

count
'den strbufokunacak karakter sayısı.

delimiter
daha önce countkarşılaşılırsa, okuma işlemini sonlandırması gereken karakter.

str
Yazacak bir dize.

Dönüş Değeri

Akış (*this).

Açıklamalar

Bu biçimlendirilmemiş giriş işlevlerinin ilki döndürür getline(str, count, widen('\n')).

İkinci işlev, öğeleri ayıklar count - 1 ve öğesinden başlayarak strdizide depolar. Her zaman, depolandığı ayıklanan öğelerden sonra dize sonlandırma karakterini depolar. Test sırasına göre ayıklama durdurulur:

  • Dosyanın sonunda.

  • İşlev, ile eşit delimiterolan bir öğeyi ayıkladıktan sonra. Bu durumda öğe geri yerleştirilmemiştir ve denetimli diziye eklenmez.

  • İşlev öğeleri ayıkladıktan count - 1 sonra.

İşlev hiçbir öğe veya count - 1 öğe ayıklamazsa öğesini çağırır setstate(failbit). Her durumda döndürür *this. Daha fazla bilgi için bkz. setstate.

Örnek

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

int main( )
{
   char c[10];

   cin.getline( &c[0], 5, '2' );
   cout << c << endl;
}
121

basic_istream::ignore

Geçerli okuma konumundan atlanan bir dizi öğeye neden olur.

basic_istream<Char_T, Tr>& ignore(
    streamsize count = 1,
    int_type delimiter = traits_type::eof());

Parametreler

count
Geçerli okuma konumundan atlana öğelerin sayısı.

delimiter
Saymadan önce karşılaşılan öğe döndürülmeye ve okunduktan sonra delimiter tüm öğelere izin vermesine neden olurignore.

Dönüş Değeri

Akış (*this).

Açıklamalar

Biçimlendirilmemiş giriş işlevi, öğeleri ayıklar count ve atar. numeric_limits<int>::maxEşitsecount, ancak rastgele olarak büyük olarak alınır. Ayıklama, dosyanın sonunda veya eşit delimiter olan (aynı zamanda ayıklanan) bir öğede Ch traits_type::to_int_type(Ch) durur. işlevi döndürür *this. Daha fazla bilgi için bkz. to_int_type.

Örnek

// basic_istream_ignore.cpp
// compile with: /EHsc
#include <iostream>
int main( )
{
   using namespace std;
   char chararray[10];
   cout << "Type 'abcdef': ";
   cin.ignore( 5, 'c' );
   cin >> chararray;
   cout << chararray;
}
Type 'abcdef': abcdef
def

basic\_istream::operator>>

Giriş akışındaki bir işlevi çağırır veya biçimlendirilmiş verileri giriş akışından okur.

basic_istream& operator>>(basic_istream& (* Pfn)(basic_istream&));
basic_istream& operator>>(ios_base& (* Pfn)(ios_base&));
basic_istream& operator>>(basic_ios<Char_T, Tr>& (* Pfn)(basic_ios<Char_T, Tr>&));
basic_istream& operator>>(basic_streambuf<Char_T, Tr>* strbuf);
basic_istream& operator>>(bool& val);
basic_istream& operator>>(short& val);
basic_istream& operator>>(unsigned short& val);
basic_istream& operator>>(int& val);
basic_istream& operator>>(unsigned int& val);
basic_istream& operator>>(long& val);
basic_istream& operator>>(unsigned long& val);
basic_istream& operator>>(long long& val);
basic_istream& operator>>(unsigned long long& val);
basic_istream& operator>>(void *& val);
basic_istream& operator>>(float& val);
basic_istream& operator>>(double& val);
basic_istream& operator>>(long double& val);

Parametreler

Pfn
İşlev işaretçisi.

strbuf
stream_buf türünün bir nesnesi.

val
Akıştan okunacak değer.

Dönüş Değeri

Akış (*this).

Açıklamalar

Üst <istream> bilgi ayrıca çeşitli genel ayıklama işleçlerini tanımlar. Daha fazla bilgi için bkz. operator>> (\<istream>).

İlk üye işlevi, formun istr >> ws bir ifadesinin öğesini çağırmasını ws(istr)ve ardından döndürür *this. Daha fazla bilgi için bkz. ws.

İkinci ve üçüncü işlevler, gibi hexdiğer manipülatörlerin benzer şekilde davranmasını sağlar. Kalan işlevler biçimlendirilmiş giriş işlevleridir.

İşlev:

basic_istream& operator>>(
    basic_streambuf<Char_T, Tr>* strbuf);

null işaretçi değilse strbuf öğeleri ayıklar ve içine strbufekler. Ayıklama, dosyanın sonunda durur. Ayrıca, ekleme başarısız olursa veya bir özel durum oluşturursa (yakalanan ancak yeniden fırlatılmayan) söz konusu öğeyi ayıklamadan durur. İşlev hiçbir öğe ayıklamazsa öğesini çağırır setstate(failbit). Her durumda işlevi döndürür *this. Daha fazla bilgi için bkz. setstate.

İşlev:

basic_istream& operator>>(bool& val);

bir alanı ayıklar ve çağırarak use_facet< num_get<Char_T, InIt>(getloc).get( InIt(rdbuf), Init(0), *this, getloc, val)boole değerine dönüştürür. Burada olarak InIt istreambuf_iterator<Char_T, Tr>tanımlanır. işlevi döndürür *this.

Daha fazla bilgi için bkz. use_facet, getloc, get, rdbufve istreambuf_iterator.

İşlevlerin her biri:

basic_istream& operator>>(short& val);
basic_istream& operator>>(unsigned short& val);
basic_istream& operator>>(int& val);
basic_istream& operator>>(unsigned int& val);
basic_istream& operator>>(long& val);
basic_istream& operator>>(unsigned long& val);
basic_istream& operator>>(long long& val);
basic_istream& operator>>(unsigned long long& val);
basic_istream& operator>>(void *& val);

bir alanı ayıklayın ve çağırarak use_facet<num_get<Char_T, InIt>(getloc).get(InIt(rdbuf), Init(0), *this, getloc, val)sayısal bir değere dönüştürün. Burada, InIt olarak tanımlanır ve val türü , unsigned longveya void * gerektiği gibi olurlongistreambuf_iterator<Char_T, Tr>.

Dönüştürülen değer türü valolarak gösterilemiyorsa, işlevi öğesini çağırır setstate(failbit). Her durumda işlevi döndürür *this. Daha fazla bilgi için bkz. setstate.

İşlevlerin her biri:

basic_istream& operator>>(float& val);
basic_istream& operator>>(double& val);
basic_istream& operator>>(long double& val);

bir alanı ayıklayın ve çağırarak use_facet<num_get<Char_T, InIt>(getloc).get(InIt(rdbuf), Init(0), *this, getloc, val)sayısal bir değere dönüştürün. Burada, InIt olarak istreambuf_iterator<Char_T, Tr>tanımlanır ve val türü double veya long double gerektiğinde vardır.

Dönüştürülen değer türü valolarak gösterilemiyorsa, işlevi öğesini çağırır setstate(failbit). Her durumda döndürür *this.

Örnek

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

using namespace std;

ios_base& hex2( ios_base& ib )
{
   ib.unsetf( ios_base::dec );
   ib.setf( ios_base::hex );
   return ib;
}

basic_istream<char, char_traits<char> >& somefunc(basic_istream<char, char_traits<char> > &i)
{
   if ( i == cin )
   {
      cerr << "i is cin" << endl;
   }
   return i;
}

int main( )
{
   int i = 0;
   cin >> somefunc;
   cin >> i;
   cout << i << endl;
   cin >> hex2;
   cin >> i;
   cout << i << endl;
}

basic_istream::operator=

basic_istream işlecin sağ tarafındaki öğesini bu nesneye atar. Arkasında bir kopya bırakmayan bir rvalue başvuru içeren taşıma ataması.

basic_istream& operator=(basic_istream&& right);

Parametreler

right
Bir rvalue nesneye basic_ifstream başvuru.

Dönüş Değeri

*this döndürür.

Açıklamalar

Üye işleci çağırır swap(right).

basic_istream::peek

Okunacak sonraki karakteri döndürür.

int_type peek();

Dönüş Değeri

Okunacak sonraki karakter.

Açıklamalar

Biçimlendirilmemiş giriş işlevi, döndürerek rdbuf->sgetcmümkünse bir öğe ayıklar. Aksi takdirde döndürür traits_type::eof. Daha fazla bilgi için bkz. sgetc ve eof.

Örnek

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

int main( )
{
   char c[10], c2;
   cout << "Type 'abcde': ";

   c2 = cin.peek( );
   cin.getline( &c[0], 9 );

   cout << c2 << " " << c << endl;
}
abcde
Type 'abcde': abcde
a abcde

basic_istream::putback

Belirtilen karakteri akışa yerleştirir.

basic_istream<Char_T, Tr>& putback(
    char_type Ch);

Parametreler

Ch
Akışa geri yerleştirecek bir karakter.

Dönüş Değeri

Akış (*this).

Açıklamalar

Biçimlendirilmemiş giriş işlevi, çağrılır rdbuf->sputbackcgibi mümkünse yerine koyarCh. Null bir işaretçiyse rdbuf veya çağrısı sputbackc döndürülüyorsa traits_type::eof, işlevi öğesini çağırır setstate(badbit). Her durumda döndürür *this.

Daha fazla bilgi için bkz. rdbuf, sputbackc, eofve setstate.

Örnek

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

int main( )
{
   char c[10], c2, c3;

   c2 = cin.get( );
   c3 = cin.get( );
   cin.putback( c2 );
   cin.getline( &c[0], 9 );
   cout << c << endl;
}
qwq

basic_istream::read

Akıştan belirtilen sayıda karakteri okur ve bunları bir dizide depolar.

Geçirilen değerlerin doğru olup olmadığını denetlemek için çağıranı kullanan bu yöntem güvenli olmayabilir.

basic_istream<Char_T, Tr>& read(
    char_type* str,
    streamsize count);

Parametreler

str
Karakterlerin okunduğu dizi.

count
Okunacak karakter sayısı.

Dönüş Değeri

Akış ( *this).

Açıklamalar

Biçimlendirilmemiş giriş işlevi öğeleri ayıklar count ve öğesinden başlayarak strdizide depolar. Ayıklama, dosyanın sonunda erken durur ve bu durumda işlevi çağrır setstate(failbit). Her durumda döndürür *this. Daha fazla bilgi için bkz. setstate.

Örnek

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

int main()
{
    char c[10];
    int count = 5;

    cout << "Type 'abcde': ";

    // Note: cin::read is potentially unsafe, consider
    // using cin::_Read_s instead.
    cin.read(&c[0], count);
    c[count] = 0;

    cout << c << endl;
}
abcde
Type 'abcde': abcde
abcde

basic_istream::readsome

Belirtilen karakter değeri sayısını okur.

Geçirilen değerlerin doğru olup olmadığını denetlemek için çağıranı kullanan bu yöntem güvenli olmayabilir.

streamsize readsome(
    char_type* str,
    streamsize count);

Parametreler

str
Okuduğu karakterlerin depolandığı readsome dizi.

count
Okunacak karakter sayısı.

Dönüş Değeri

Aslında okunan karakter sayısı, gcount.

Açıklamalar

Bu biçimlendirilmemiş giriş işlevi, giriş akışından öğeleri ayıklar count ve dizisinde strdepolar.

Bu işlev girişi beklemez. Kullanılabilir verileri okur.

Örnek

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

int main( )
{
   char c[10];
   int count = 5;

   cout << "Type 'abcdefgh': ";

   // cin.read blocks until user types input.
   // Note: cin::read is potentially unsafe, consider
   // using cin::_Read_s instead.
   cin.read(&c[0], 2);

   // Note: cin::readsome is potentially unsafe, consider
   // using cin::_Readsome_s instead.
   int n = cin.readsome(&c[0], count);  // C4996
   c[n] = 0;
   cout << n << " characters read" << endl;
   cout << c << endl;
}

basic_istream::seekg

Akıştaki okuma konumunu taşır.

basic_istream<Char_T, Tr>& seekg(pos_type pos);

basic_istream<Char_T, Tr>& seekg(off_type off, ios_base::seekdir way);

Parametreler

pos
Okuma işaretçisinin hareket ettirildiği mutlak konum.

off
Okuma işaretçisini öğesine göre taşımak için waybir uzaklık.

way
Sabit listelerinden ios_base::seekdir biri.

Dönüş Değeri

Akış (*this).

Açıklamalar

İlk üye işlevi mutlak bir arama gerçekleştirir, ikinci üye işlevi göreli bir arama gerçekleştirir.

Not

Standart C++ metin dosyalarındaki göreli aramaları desteklemediğinden, ikinci üye işlevini metin dosyalarıyla kullanmayın.

ise fail false, ilk üye işlevi bazı pos_type geçici nesnesi newposiçin öğesini çağırırnewpos = rdbuf->pubseekpos(pos). ise fail false, ikinci işlev öğesini çağırır newpos = rdbuf->pubseekoff( off, way). Her iki durumda da , (off_type)newpos == (off_type)(-1) (konumlandırma işlemi başarısız olursa) işlevi öğesini çağırır istr.setstate(failbit). her iki işlev de döndürür *this.

ise fail true, üye işlevleri hiçbir şey yapmaz.

Daha fazla bilgi için bkz. rdbuf, pubseekpos, pubseekoffve setstate.

Örnek

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

int main ( )
{
   using namespace std;
   ifstream file;
   char c, c1;

   file.open( "basic_istream_seekg.txt" );
   file.seekg(2);   // seek to position 2
   file >> c;
   cout << c << endl;
}

basic_istream::sentry

İç içe geçmiş sınıf, bildirimi biçimlendirilmiş ve biçimlendirilmemiş giriş işlevlerini yapılandırılmış bir nesneyi açıklar.

class sentry {
   public:
   explicit sentry(
      basic_istream<Char_T, Tr>& _Istr,
      bool _Noskip = false);
   operator bool() const;
   };

Açıklamalar

ise _Istr.good true, oluşturucu:

  • Null işaretçi değilse _Istr.tie çağırır_Istr.tie->flush.

  • Sıfır dışıysa _Istr.flags & skipws etkili bir şekilde çağırırws(_Istr).

Bu tür bir hazırlığı yaptıktan sonra, _Istr.good falseoluşturucu öğesini çağırır _Istr.setstate(failbit). Her durumda, oluşturucu tarafından _Istr.good döndürülen değeri içinde statusdepolar. Bu depolanan değeri teslim etmek için operator bool sonraki bir çağrı.

Daha fazla bilgi için bkz. good, tie, flush, ws, flags, skipwsve setstate.

basic_istream::swap

İki basic_istream nesnenin içeriğini değiştirir.

void swap(basic_istream& right);

Parametreler

right
Bir lvalue nesneye basic_istream başvuru.

Açıklamalar

Üye işlevi çağırır basic_ios::swap(right). Ayrıca ayıklama sayısını için rightayıklama sayısıyla değiştirir. Daha fazla bilgi için bkz. basic_ios::swap.

basic_istream::sync

Akışın ilişkili giriş cihazını akışın arabelleğiyle eşitler.

int sync();

Dönüş Değeri

Null işaretçiyse rdbuf , işlev -1 döndürür. Aksi takdirde öğesini çağırır rdbuf->pubsync. Bu çağrı -1 döndürürse, işlev -1'i çağırır setstate(badbit) ve döndürür. Aksi takdirde işlev sıfır döndürür. Daha fazla bilgi için bkz. pubsync ve setstate.

basic_istream::tellg

Akıştaki geçerli okuma konumunu bildirir.

pos_type tellg();

Dönüş Değeri

Akıştaki geçerli konum.

Açıklamalar

ise fail false, üye işlevi döndürür rdbuf->pubseekoff(0, cur, in). Aksi takdirde döndürür pos_type(-1). Daha fazla bilgi için bkz. rdbuf ve pubseekoff.

Örnek

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

int main()
{
    using namespace std;
    ifstream file;
    char c;
    streamoff i;

    file.open("basic_istream_tellg.txt");
    i = file.tellg();
    file >> c;
    cout << c << " " << i << endl;

    i = file.tellg();
    file >> c;
    cout << c << " " << i << endl;
}

basic_istream::unget

En son okunan karakteri akışa geri yerleştirir.

basic_istream<Char_T, Tr>& unget();

Dönüş Değeri

Akış (*this).

Açıklamalar

Biçimlendirilmemiş giriş işlevi, mümkünse bir null işaretçiyse rdbuf veya çağrısı döndürülüyorsa traits_type::eofişlevi çağrısı yaparak rdbuf->sungetc önceki öğeyi sungetc akışa setstate(badbit)geri koyar. Her durumda döndürür *this.

Daha fazla bilgi için bkz. sungetc, eof ve setstate. Ve nasıl unget başarısız olabileceği hakkında bilgi için bkz basic_streambuf::sungetc. .

Örnek

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

int main( )
{
   char c[10], c2;

   cout << "Type 'abc': ";
   c2 = cin.get( );
   cin.unget( );
   cin.getline( &c[0], 9 );
   cout << c << endl;
}
abc
Type 'abc': abc
abc

Ayrıca bkz.

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