Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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ásdbasic_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ő.
delimiterEbben 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ő.
delimiterEbben 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.tienem null mutató.Hatékonyan hívja meg
ws(_Istr), ha_Istr.flags & skipwsnem.
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