basic_istream
Sınıf
Karakter özellikleri olarak da bilinen traits_type
sınıfı Tr
tarafından belirlenen , olarak char_type
da 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_istream bir 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_istream
bir 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 right
ayı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 strbuf
okunacak karakter sayısı.
delimiter
daha önce count
karşı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->sbumpc
bir öğ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 str
dizide 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
delimiter
olan 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 strbuf
ekler. Ayıklama, dosya sonunda veya ayıklanmamış ile eşit delimiter
olan 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 strbuf
okunacak karakter sayısı.
delimiter
daha önce count
karşı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 str
dizide 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
delimiter
olan 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>::max
Eş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 hex
diğ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 strbuf
ekler. 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
, rdbuf
ve 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 long
veya void *
gerektiği gibi olurlong
istreambuf_iterator<Char_T, Tr>
.
Dönüştürülen değer türü val
olarak 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ü val
olarak 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->sgetc
mü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->sputbackc
gibi 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
, eof
ve 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 str
dizide 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 str
depolar.
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 way
bir 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 newpos
iç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
, pubseekoff
ve 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
false
oluşturucu öğesini çağırır _Istr.setstate(failbit)
. Her durumda, oluşturucu tarafından _Istr.good
döndürülen değeri içinde status
depolar. 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
, skipws
ve 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 right
ayı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::eof
iş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ı
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin