Megosztás a következőn keresztül:


basic_istream osztály

Egy olyan objektumot ír le, amely az elemek és kódolt objektumok streampufferből való kinyerésének szabályozását szabályozza olyan típusú Char_Telemekkel, amelyek char_typekaraktertulajdonságait az osztály Trhatározza meg, más néven traits_type.

Szemantika

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

Megjegyzések

A túlterhelt operator>> tagfüggvények többsége formázott bemeneti függvény. A következő mintát követik:

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);

Sok más tagfüggvény nem formázott bemeneti függvény. A következő mintát követik:

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);

Mindkét függvénycsoport meghívja setstate(eofbit) őket, ha az elemek kinyerése során fájlvégzéssel találkoznak. További információért lásd setstate.

Osztálytárolók basic_istream<Char_T, Tr> objektuma:

  • Az osztály basic_ios<Char_T, Tr>virtuális nyilvános alapobjektuma. További információért lásd basic_ios.

  • Az utolsó formázatlan bemeneti művelet kinyerési száma (az előző kódban hívva count ).

példa

A bemeneti streamekről az Osztály példában basic_ifstream olvashat bővebben.

Konstruktorok

Konstruktor Leírás
basic_istream Egy típusú basic_istreamobjektumot hoz létre.

Tagfüggvények

Tagfüggvény Leírás
gcount Az utolsó formázatlan bemenet során beolvasott karakterek számát adja vissza.
get Egy vagy több karaktert olvas be a bemeneti adatfolyamból.
getline Beolvas egy vonalat a bemeneti adatfolyamból.
ignore Több elem kihagyását okozza az aktuális olvasási pozícióból.
peek A következő felolvasandó karaktert adja vissza.
putback Egy megadott karaktert helyez a streambe.
read Beolvassa a streamből a megadott számú karaktert, és egy tömbben tárolja őket.
readsome Olvasás csak pufferből.
seekg A stream olvasási pozíciójának áthelyezése.
sentry A beágyazott osztály egy olyan objektumot ír le, amelynek deklarációja a formázott bemeneti függvényeket és a formázatlan bemeneti függvényeket tartalmazza.
swap Ezt az basic_istream objektumot a megadott basic_istream objektumparaméterre cseréli.
sync Szinkronizálja a stream társított bemeneti eszközét a stream pufferével.
tellg A stream aktuális olvasási pozícióját jelenti.
unget A legutóbb beolvasott karakter vissza lesz helyezve a streambe.

Működtetők

Operátor Leírás
operator>> Meghív egy függvényt a bemeneti adatfolyamon, vagy beolvassa a formázott adatokat a bemeneti adatfolyamból.
operator= basic_istream Az operátor jobb oldalán lévő értéket rendeli hozzá ehhez az objektumhoz. Ez egy olyan áthelyezési hozzárendelés, amely olyan rvalue hivatkozást foglal magában, amely nem hagy hátra egy másolatot.

Követelmények

fejléc:<istream>

Névtér:std

basic_istream::basic_istream

Egy típusú basic_istreamobjektumot hoz létre.

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

basic_istream(basic_istream&& right);

Paraméterek

strbuf
Egy basic_streambuf típusú objektum.

_Isstd
trueha ez egy standard stream; egyéb esetben. false

right
Másolandó basic_istream objektum.

Megjegyzések

Az első konstruktor meghívva inicializálja az alaposztályt init(strbuf). Az extrakciós számban is nulla van tárolva. További információért lásd init. A kinyerési számról további információt az Osztály áttekintésének Megjegyzések szakaszában basic_istream talál.

A második konstruktor meghívva inicializálja az alaposztályt move(right). Emellett az extrakciós számban, right.gcount() a kinyerési számban pedig nullát righttárol.

példa

A bemeneti streamekkel kapcsolatos további információkért basic_ifstream::basic_ifstream tekintse meg a példát.

basic_istream::gcount

Az utolsó formázatlan bemenet során beolvasott karakterek számát adja vissza.

streamsize gcount() const;

Visszaadott érték

A kinyerési szám.

Megjegyzések

Formázatlan karakterek olvasására használható basic_istream::get .

példa

// 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

Egy vagy több karaktert olvas be a bemeneti adatfolyamból.

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);

Paraméterek

count
A beolvasandó strbufkarakterek száma.

delimiter
Az a karakter, amely leállítja az olvasást, ha korábban countmár előfordult.

str
Egy sztring, amelyben írni kell.

Ch
Egy karakter, amit be kell szerezni.

strbuf
Egy puffer, amelyben írni kell.

Visszaadott érték

A paraméter nélküli formátum get egész számként vagy fájlvégzetlenként olvasott elemet ad vissza. A fennmaradó űrlapok visszaadják a streamet (*this).

Megjegyzések

Az első formázatlan bemeneti függvény lehetőség szerint kinyer egy elemet, mintha visszaadja a függvényt rdbuf->sbumpc. Ellenkező esetben a visszaadott traits_type::eoférték. Ha a függvény nem nyer ki elemet, meghívja a függvényt setstate(failbit). További információért lásd setstate.

A második függvény ugyanúgy nyeri ki az int_type elemet meta . Ha meta egyenlő, traits_type::eofa függvény meghívja a függvényt setstate(failbit). Ellenkező esetben a következő helyen tárolja traits_type::to_char_type(meta) : Ch. A függvény ad *thisvissza . További információért lásd to_char_type.

A harmadik függvény ad get(str, count, widen('\n'))vissza.

A negyedik függvény kinyeri az elemeket count - 1 , és a következőtől kezdődően strtárolja őket a tömbben. Mindig az általa tárolt kinyert elemek után tárolja char_type . A tesztelés érdekében a kinyerés leáll:

  • A fájl végén.

  • Miután a függvény kiolvas egy elemet, amely egyenlő.delimiter Ebben az esetben az elem vissza lesz helyezve a szabályozott sorozatba.

  • Miután a függvény kinyeri az elemeket count - 1 .

Ha a függvény nem nyer ki elemeket, meghívja a következőt setstate(failbit): . Mindenesetre a visszaadott *thisérték.

Az ötödik függvény ad get(strbuf, widen('\n'))vissza.

A hatodik függvény kinyeri az elemeket, és beszúrja őket a következőbe strbuf: . A kinyerés leáll a fájl végén vagy egy olyan elemen, amely egyenlő a ki nem bontott elemével delimiter. Az is leáll, a kérdéses elem kinyerése nélkül, ha egy beszúrás meghiúsul, vagy kivételt vet ki (amely le van fogott, de nem újul meg). Ha a függvény nem nyer ki elemeket, meghívja a következőt setstate(failbit): . A függvény mindenesetre visszaadja a függvényt *this.

példa

// 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

Beolvas egy vonalat a bemeneti adatfolyamból.

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);

Paraméterek

count
A beolvasandó strbufkarakterek száma.

delimiter
Az a karakter, amely leállítja az olvasást, ha korábban countmár előfordult.

str
Egy sztring, amelyben írni kell.

Visszaadott érték

A stream (*this).

Megjegyzések

A formázatlan bemeneti függvények getline(str, count, widen('\n'))közül az első ad vissza.

A második függvény kinyeri az elemeket, count - 1 és a következőtől kezdve strtárolja őket a tömbben. A sztringvégzítési karaktert mindig az általa tárolt kinyert elemek után tárolja. A tesztelés érdekében a kinyerés leáll:

  • A fájl végén.

  • Miután a függvény kiolvas egy elemet, amely egyenlő.delimiter Ebben az esetben az elem nem kerül vissza, és nincs hozzáfűzve a szabályozott sorozathoz.

  • Miután a függvény kinyeri az elemeket count - 1 .

Ha a függvény nem nyer ki elemeket vagy count - 1 elemeket, meghívja a függvényt setstate(failbit). Mindenesetre a visszaadott *thisérték. További információért lásd setstate.

példa

// 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

Több elem kihagyását okozza az aktuális olvasási pozícióból.

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

Paraméterek

count
Az aktuális olvasási pozícióból kihagyandó elemek száma.

delimiter
Az az elem, amely a számlálás előtt jelentkezik, visszatérést okozignore, és lehetővé teszi az összes elem olvasását.delimiter

Visszaadott érték

A stream (*this).

Megjegyzések

A formázatlan bemeneti függvény kinyeri az count elemeket, és elveti őket. Ha count egyenlő numeric_limits<int>::max, akkor azonban önkényesen nagynak számít. A kinyerés a fájl végén vagy egy olyan elemen Ch leáll, amely traits_type::to_int_type(Ch) egyenlő ( delimiter amelyet szintén kinyernek). A függvény ad *thisvissza . További információért lásd to_int_type.

példa

// 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>>

Meghív egy függvényt a bemeneti adatfolyamon, vagy beolvassa a formázott adatokat a bemeneti adatfolyamból.

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);

Paraméterek

Pfn
Egy függvénymutató.

strbuf
Típusú objektum stream_buf.

val
A streamből beolvasandó érték.

Visszaadott érték

A stream (*this).

Megjegyzések

A <istream> fejléc több globális kinyerési operátort is meghatároz. További információért lásd operator>> (<istream>).

Az első tagfüggvény biztosítja, hogy az űrlap istr >> ws kifejezése meghívja ws(istr), majd visszaadja *this. További információért lásd ws.

A második és a harmadik függvény biztosítja, hogy más manipulátorok, például hex, hasonlóan viselkedjenek. A többi függvény a formázott bemeneti függvény.

A függvény:

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

kinyeri az elemeket, ha strbuf nem nullmutató, és beszúrja őket a fájlba strbuf. A kinyerés leáll a fájl végén. A szóban forgó elem kinyerése nélkül is leáll, ha egy beszúrás meghiúsul, vagy kivételt vet ki (amely le van fogott, de nem újul meg). Ha a függvény nem nyer ki elemeket, meghívja a következőt setstate(failbit): . A függvény mindenesetre visszaadja a függvényt *this. További információért lásd setstate.

A függvény:

basic_istream& operator>>(bool& val);

kinyer egy mezőt, és logikai értékké alakítja a függvény use_facet< num_get<Char_T, InIt>(getloc).get( InIt(rdbuf), Init(0), *this, getloc, val)meghívásával. InIt Itt a következőként van definiálvaistreambuf_iterator<Char_T, Tr>: . A függvény ad *thisvissza .

További információ: use_facet, getloc, get, rdbufés istreambuf_iterator.

Az egyes függvények:

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);

kinyerhet egy mezőt, és számértékké alakíthatja a hívással use_facet<num_get<Char_T, InIt>(getloc).get(InIt(rdbuf), Init(0), *this, getloc, val). InIt Itt definiálva istreambuf_iterator<Char_T, Tr>van, és val típussal longrendelkezik, unsigned longvagy void * szükség szerint.

Ha a konvertált érték nem jeleníthető meg típusként val, a függvény meghívja a függvényt setstate(failbit). A függvény mindenesetre visszaadja a függvényt *this. További információért lásd setstate.

Az egyes függvények:

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

kinyerhet egy mezőt, és számértékké alakíthatja a hívással use_facet<num_get<Char_T, InIt>(getloc).get(InIt(rdbuf), Init(0), *this, getloc, val). Itt a következőként InItvan definiálva, istreambuf_iterator<Char_T, Tr> és val típussal double vagy long double igény szerint rendelkezik.

Ha a konvertált érték nem jeleníthető meg típusként val, a függvény meghívja a függvényt setstate(failbit). Mindenesetre a visszaadott *thisérték.

példa

// 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 Az operátor jobb oldalán lévő értéket rendeli hozzá ehhez az objektumhoz. Ez egy olyan áthelyezési hozzárendelés, amely olyan rvalue hivatkozást foglal magában, amely nem hagy hátra egy másolatot.

basic_istream& operator=(basic_istream&& right);

Paraméterek

right
Egy rvalue objektumra mutató basic_ifstream hivatkozás.

Visszaadott érték

Visszatér *this.

Megjegyzések

A tag operátor hívása swap(right).

basic_istream::peek

A következő felolvasandó karaktert adja vissza.

int_type peek();

Visszaadott érték

A következő karakter, amely be lesz olvasva.

Megjegyzések

A formázatlan bemeneti függvény lehetőség szerint úgy nyer ki egy elemet, mintha visszaadja a függvényt rdbuf->sgetc. Ellenkező esetben traits_type::eof-et ad vissza. További információ: sgetc és eof.

példa

// 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

Egy megadott karaktert helyez a streambe.

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

Paraméterek

Ch
Egy karakter, amely vissza lesz helyezve a streambe.

Visszaadott érték

A stream (*this).

Megjegyzések

A formázatlan bemeneti függvény lehetőség szerint úgy állítja vissza Cha függvényt, mintha meghívja a függvényt rdbuf->sputbackc. Ha rdbuf null mutató, vagy ha a visszaküldött sputbackctraits_type::eofhívás, a függvény meghívja a függvényt setstate(badbit). Mindenesetre a visszaadott *thisérték.

További információ: rdbuf, sputbackc, eofés setstate.

példa

// 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

Beolvassa a streamből a megadott számú karaktert, és egy tömbben tárolja őket.

Ez a módszer potenciálisan nem biztonságos, mivel a hívóra támaszkodva ellenőrzi, hogy az átadott értékek helyesek-e.

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

Paraméterek

str
Az a tömb, amelyben beolvassa a karaktereket.

count
Az elolvasandó karakterek száma.

Visszaadott érték

A stream ( *this).

Megjegyzések

A formázatlan bemeneti függvény kinyeri az count elemeket, és a következőtől kezdve strtárolja őket a tömbben. A kinyerés a fájl elején leáll, ebben az esetben a függvény meghívja a fájlt setstate(failbit). Mindenesetre a visszaadott *thisérték. További információért lásd setstate.

példa

// 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

Beolvassa a megadott számú karakterértéket.

Ez a módszer potenciálisan nem biztonságos, mivel a hívóra támaszkodva ellenőrzi, hogy az átadott értékek helyesek-e.

streamsize readsome(
    char_type* str,
    streamsize count);

Paraméterek

str
Az a tömb, amelyben readsome a beolvasott karaktereket tárolja.

count
Az elolvasandó karakterek száma.

Visszaadott érték

A ténylegesen beolvasott karakterek száma, gcount.

Megjegyzések

Ez a formázatlan bemeneti függvény kinyeri count az elemeket a bemeneti adatfolyamból, és tárolja őket a tömbben str.

Ez a függvény nem várja meg a bemenetet. Beolvassa a rendelkezésre álló adatokat.

példa

// 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

A stream olvasási pozíciójának áthelyezése.

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

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

Paraméterek

pos
Az az abszolút pozíció, amelyben az olvasási mutatót el szeretné helyezni.

off
Eltolás az olvasási mutató áthelyezéséhez a következőhöz wayképest: .

way
Az egyik ios_base::seekdir számbavétel.

Visszaadott érték

A stream (*this).

Megjegyzések

Az első tagfüggvény abszolút keresőt hajt végre, a második tagfüggvény pedig relatív keresést hajt végre.

Megjegyzés:

Ne használja a második tagfüggvényt szövegfájlokkal, mert a Standard C++ nem támogatja a relatív kereséseket a szövegfájlokban.

Ha fail igen false, az első tagfüggvény meghív newpos = rdbuf->pubseekpos(pos)néhány pos_type ideiglenes objektumot newpos. Ha fail igen false, a második függvény meghívja a függvényt newpos = rdbuf->pubseekoff( off, way). Ha (a pozicionálási művelet sikertelen) mindkét esetben (off_type)newpos == (off_type)(-1) meghívja istr.setstate(failbit)a függvényt. Mindkét függvény ad vissza *this.

Ha fail igen true, a tagfüggvények nem tesznek semmit.

További információ: rdbuf, pubseekpos, pubseekoffés setstate.

példa

// 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

A beágyazott osztály egy olyan objektumot ír le, amelynek deklarációja formázott és formázatlan bemeneti függvényeket épít be.

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

Megjegyzések

Ha _Istr.good igen true, akkor a konstruktor:

  • Hívás _Istr.tie->flush , ha _Istr.tie nem null mutató.

  • Hatékonyan hívja meg ws(_Istr) , ha _Istr.flags & skipws nem.

Ha bármilyen ilyen előkészítés után, _Istr.good akkor falsea konstruktor meghívja _Istr.setstate(failbit). A konstruktor mindenesetre a visszaadott _Istr.good értéket tárolja a következőben status: . Egy későbbi hívás a operator bool tárolt érték kézbesítésére.

További információ: good, , tieflush, ws, flags, skipwsés setstate.

basic_istream::swap

Két basic_istream objektum tartalmát cseréli le.

void swap(basic_istream& right);

Paraméterek

right
Egy lvalue objektumra mutató basic_istream hivatkozás.

Megjegyzések

A tagfüggvény hívásai basic_ios::swap(right). Az extrakciós számot a kinyerési számmal rightis cseréli. További információért lásd basic_ios::swap.

basic_istream::sync

Szinkronizálja a stream társított bemeneti eszközét a stream pufferével.

int sync();

Visszaadott érték

Ha rdbuf null mutató, a függvény -1 értéket ad vissza. Ellenkező esetben meghívja a .. parancsot rdbuf->pubsync. Ha a hívás -1 értéket ad vissza, a függvény meghívja setstate(badbit) és visszaadja a -1 értéket. Ellenkező esetben a függvény nullát ad vissza. További információ: pubsync és setstate.

basic_istream::tellg

A stream aktuális olvasási pozícióját jelenti.

pos_type tellg();

Visszaadott érték

A stream aktuális pozíciója.

Megjegyzések

Ha fail igen false, akkor a tagfüggvény ad rdbuf->pubseekoff(0, cur, in)vissza. Ellenkező esetben pos_type(-1)-et ad vissza. További információ: rdbuf és pubseekoff.

példa

// 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

A legutóbb beolvasott karakter vissza lesz helyezve a streambe.

basic_istream<Char_T, Tr>& unget();

Visszaadott érték

A stream (*this).

Megjegyzések

A formázatlan bemeneti függvény a stream előző elemét állítja vissza, ha lehetséges, úgy, mintha null mutatót hívna rdbuf->sungetcrdbuf meg, vagy ha a hívás visszavált sungetctraits_type::eof, a függvény meghívja setstate(badbit). Mindenesetre a visszaadott *thisérték.

További információ: sungetc, eofés setstate. A sikertelenségről további információt unget a következő témakörben talál basic_streambuf::sungetc: .

példa

// 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

Lásd még

Szálbiztonság a C++ Standard könyvtárban
iostream Programozás
iostreams Egyezmények