basic_istream
Kelas
Menjelaskan objek yang mengontrol ekstraksi elemen dan objek yang dikodekan dari buffer aliran dengan elemen jenis Char_T
, juga dikenal sebagai char_type
, yang sifat karakternya ditentukan oleh kelas Tr
, juga dikenal sebagai traits_type
.
Sintaks
template <class Char_T, class Tr = char_traits<Char_T>>
class basic_istream : virtual public basic_ios<Char_T, Tr>
Keterangan
Sebagian besar fungsi anggota yang kelebihan beban operator>>
adalah fungsi input yang diformat. Mereka mengikuti pola:
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);
Banyak fungsi anggota lainnya adalah fungsi input yang tidak diformat. Mereka mengikuti pola:
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);
Kedua grup fungsi memanggil setstate(eofbit)
jika mereka menemukan akhir file saat mengekstrak elemen. Untuk informasi selengkapnya, lihat setstate
.
Objek penyimpanan kelas basic_istream<Char_T, Tr>
:
Objek dasar publik virtual kelas
basic_ios<Char_T, Tr>
. Untuk informasi selengkapnya, lihatbasic_ios
.Jumlah ekstraksi untuk operasi input terakhir yang tidak diformat (dipanggil
count
dalam kode sebelumnya).
Contoh
Lihat contoh kelas untuk basic_ifstream
mempelajari selengkapnya tentang aliran input.
Konstruktor
Konstruktor | Deskripsi |
---|---|
basic_istream |
Membuat objek jenis basic_istream . |
Fungsi anggota
Fungsi anggota | Deskripsi |
---|---|
gcount |
Mengembalikan jumlah karakter yang dibaca selama input terakhir yang tidak diformat. |
get |
Membaca satu atau beberapa karakter dari aliran input. |
getline |
Membaca baris dari aliran input. |
ignore |
Menyebabkan sejumlah elemen dilewati dari posisi baca saat ini. |
peek |
Mengembalikan karakter berikutnya yang akan dibaca. |
putback |
Menempatkan karakter tertentu ke dalam aliran. |
read |
Membaca jumlah karakter tertentu dari aliran dan menyimpannya dalam array. |
readsome |
Baca dari buffer saja. |
seekg |
Memindahkan posisi baca dalam aliran. |
sentry |
Kelas berlapis menjelaskan objek yang deklarasinya menyusun fungsi input yang diformat dan fungsi input yang tidak diformat. |
swap |
Menukar objek ini basic_istream dengan parameter objek yang disediakan basic_istream . |
sync |
Menyinkronkan perangkat input terkait aliran dengan buffer aliran. |
tellg |
Melaporkan posisi baca saat ini di aliran. |
unget |
Menempatkan karakter baca terbaru kembali ke aliran. |
Operators
Operator | Deskripsi |
---|---|
operator>> |
Memanggil fungsi pada aliran input atau membaca data yang diformat dari aliran input. |
operator= |
basic_istream Menetapkan di sisi kanan operator ke objek ini. Ini adalah penetapan pemindahan yang rvalue melibatkan referensi yang tidak meninggalkan salinan di belakang. |
Persyaratan
Header:<istream>
Ruang nama:std
basic_istream::basic_istream
Membuat objek jenis basic_istream
.
explicit basic_istream(
basic_streambuf<Char_T, Tr>* strbuf,
bool _Isstd = false);
basic_istream(basic_istream&& right);
Parameter
strbuf
Objek jenis basic_streambuf.
_Isstd
true
jika itu adalah aliran standar; jika tidak, false
.
right
Objek basic_istream
yang akan disalin.
Keterangan
Konstruktor pertama menginisialisasi kelas dasar dengan memanggil init(strbuf)
. Ini juga menyimpan nol dalam jumlah ekstraksi. Untuk informasi selengkapnya, lihat init
. Dan untuk informasi selengkapnya tentang jumlah ekstraksi ini, lihat bagian Keterangan dari basic_istream
Ringkasan kelas .
Konstruktor kedua menginisialisasi kelas dasar dengan memanggil move(right)
. Ini juga menyimpan right.gcount()
dalam jumlah ekstraksi dan menyimpan nol dalam jumlah ekstraksi untuk right
.
Contoh
Lihat contoh untuk basic_ifstream::basic_ifstream
mempelajari selengkapnya tentang aliran input.
basic_istream::gcount
Mengembalikan jumlah karakter yang dibaca selama input terakhir yang tidak diformat.
streamsize gcount() const;
Tampilkan Nilai
Jumlah ekstraksi.
Keterangan
Gunakan basic_istream::get
untuk membaca karakter yang tidak diformat.
Contoh
// 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
Membaca satu atau beberapa karakter dari aliran input.
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);
Parameter
count
Jumlah karakter yang akan dibaca dari strbuf
.
delimiter
Karakter yang harus mengakhiri bacaan jika ditemui sebelum count
.
str
String untuk ditulis.
Ch
Karakter yang harus didapatkan.
strbuf
Buffer untuk menulis.
Tampilkan Nilai
Bentuk get
tanpa parameter mengembalikan elemen yang dibaca sebagai bilangan bulat atau akhir file. Formulir yang tersisa mengembalikan aliran (*this
).
Keterangan
Fungsi input pertama yang tidak diformat mengekstrak elemen, jika memungkinkan, seolah-olah dengan mengembalikan rdbuf->sbumpc
. Jika tidak, ia kembali traits_type::
eof
. Jika fungsi tidak mengekstrak elemen, fungsi akan memanggil setstate(failbit)
. Untuk informasi selengkapnya, lihat setstate
.
Fungsi kedua mengekstrak elemen meta
dengan int_type
cara yang sama. Jika meta
dibandingkan dengan traits_type::eof
, fungsi memanggil setstate(failbit)
. Jika tidak, ia menyimpan traits_type::to_char_type(meta)
di Ch
. Fungsi mengembalikan *this
. Untuk informasi selengkapnya, lihat to_char_type
.
Fungsi ketiga mengembalikan get(str, count, widen('\n'))
.
Fungsi keempat mengekstrak hingga count - 1
elemen dan menyimpannya dalam array yang dimulai di str
. Ini selalu disimpan char_type
setelah elemen yang diekstrak yang disimpannya. Dalam urutan pengujian, ekstraksi berhenti:
Di akhir file.
Setelah fungsi mengekstrak elemen yang dibandingkan dengan
delimiter
. Dalam hal ini, elemen diletakkan kembali ke urutan yang dikontrol.Setelah fungsi mengekstrak
count - 1
elemen.
Jika fungsi tidak mengekstrak elemen, fungsi akan memanggil setstate(failbit)
. Bagaimanapun, ia mengembalikan *this
.
Fungsi kelima mengembalikan get(strbuf, widen('\n'))
.
Fungsi keenam mengekstrak elemen dan menyisipkannya ke dalam strbuf
. Ekstraksi berhenti pada akhir file atau pada elemen yang dibandingkan dengan delimiter
, yang tidak diekstraksi. Ini juga berhenti, tanpa mengekstrak elemen yang dimaksud, jika penyisipan gagal atau melempar pengecualian (yang ditangkap tetapi tidak ditumbuhi kembali). Jika fungsi tidak mengekstrak elemen, fungsi akan memanggil setstate(failbit)
. Bagaimanapun, fungsi mengembalikan *this
.
Contoh
// 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
Mendapatkan baris dari aliran input.
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);
Parameter
count
Jumlah karakter yang akan dibaca dari strbuf
.
delimiter
Karakter yang harus mengakhiri bacaan jika ditemui sebelum count
.
str
String untuk ditulis.
Tampilkan Nilai
Aliran (*this
).
Keterangan
Fungsi input pertama yang tidak diformat ini mengembalikan getline(str, count, widen('\n'))
.
Fungsi kedua mengekstrak hingga count - 1
elemen dan menyimpannya dalam array yang dimulai di str
. Ini selalu menyimpan karakter penghentian string setelah elemen yang diekstrak yang disimpannya. Dalam urutan pengujian, ekstraksi berhenti:
Di akhir file.
Setelah fungsi mengekstrak elemen yang dibandingkan dengan
delimiter
. Dalam hal ini, elemen tidak diletakkan kembali, dan tidak ditambahkan ke urutan terkontrol.Setelah fungsi mengekstrak
count - 1
elemen.
Jika fungsi tidak mengekstrak elemen atau count - 1
elemen, fungsi memanggil setstate(failbit)
. Bagaimanapun, ia mengembalikan *this
. Untuk informasi selengkapnya, lihat setstate
.
Contoh
// 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
Menyebabkan sejumlah elemen dilewati dari posisi baca saat ini.
basic_istream<Char_T, Tr>& ignore(
streamsize count = 1,
int_type delimiter = traits_type::eof());
Parameter
count
Jumlah elemen yang akan dilewati dari posisi baca saat ini.
delimiter
Elemen yang, jika ditemui sebelum hitungan, menyebabkan ignore
kembali dan mengizinkan semua elemen setelah delimiter
dibaca.
Tampilkan Nilai
Aliran (*this
).
Keterangan
Fungsi input yang tidak diformat mengekstrak hingga count
elemen dan membuangnya. Namun, jika count
sama dengan numeric_limits<int>::max
, itu diambil sebagai sangat besar. Ekstraksi berhenti di awal akhir file atau pada elemen sederajat Ch
yang traits_type::to_int_type(Ch)
dibandingkan dengan delimiter
(yang juga diekstraksi). Fungsi mengembalikan *this
. Untuk informasi selengkapnya, lihat to_int_type
.
Contoh
// 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>>
Memanggil fungsi pada aliran input atau membaca data yang diformat dari aliran input.
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);
Parameter
Pfn
Penunjuk fungsi.
strbuf
Objek jenis stream_buf
.
val
Nilai yang akan dibaca dari aliran.
Tampilkan Nilai
Aliran (*this
).
Keterangan
Header <istream>
juga menentukan beberapa operator ekstraksi global. Untuk informasi selengkapnya, lihat operator>> (\<istream>)
.
Fungsi anggota pertama memastikan bahwa ekspresi formulir istr >> ws
memanggil ws(istr)
, lalu mengembalikan *this
. Untuk informasi selengkapnya, lihat ws
.
Fungsi kedua dan ketiga memastikan bahwa manipulator lain, seperti hex
, bersifat serupa. Fungsi yang tersisa adalah fungsi input yang diformat.
Fungsi :
basic_istream& operator>>(
basic_streambuf<Char_T, Tr>* strbuf);
mengekstrak elemen, jika strbuf
bukan penunjuk null, dan menyisipkannya di strbuf
. Ekstraksi berhenti di akhir file. Ini juga berhenti tanpa mengekstrak elemen yang dimaksud, jika penyisipan gagal atau melempar pengecualian (yang ditangkap tetapi tidak ditumbuhi kembali). Jika fungsi tidak mengekstrak elemen, fungsi akan memanggil setstate(failbit)
. Bagaimanapun, fungsi mengembalikan *this
. Untuk informasi selengkapnya, lihat setstate
.
Fungsi :
basic_istream& operator>>(bool& val);
mengekstrak bidang dan mengonversinya menjadi nilai Boolean dengan memanggil use_facet< num_get<Char_T, InIt>(getloc).get( InIt(rdbuf), Init(0), *this, getloc, val)
. Di sini, InIt
didefinisikan sebagai istreambuf_iterator<Char_T, Tr>
. Fungsi mengembalikan *this
.
Untuk informasi selengkapnya, lihat use_facet
, getloc
, get
, rdbuf
, dan istreambuf_iterator
.
Masing-masing fungsi:
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);
ekstrak bidang dan konversikan ke nilai numerik dengan memanggil use_facet<num_get<Char_T, InIt>(getloc).get(InIt(rdbuf), Init(0), *this, getloc, val)
. Di sini, InIt
didefinisikan sebagai istreambuf_iterator<Char_T, Tr>
, dan val
memiliki jenis long
, unsigned long
, atau void *
sesuai kebutuhan.
Jika nilai yang dikonversi tidak dapat direpresentasikan setstate(failbit)
sebagai jenis val
, fungsi memanggil . Bagaimanapun, fungsi mengembalikan *this
. Untuk informasi selengkapnya, lihat setstate
.
Masing-masing fungsi:
basic_istream& operator>>(float& val);
basic_istream& operator>>(double& val);
basic_istream& operator>>(long double& val);
ekstrak bidang dan konversikan ke nilai numerik dengan memanggil use_facet<num_get<Char_T, InIt>(getloc).get(InIt(rdbuf), Init(0), *this, getloc, val)
. Di sini, InIt
didefinisikan sebagai istreambuf_iterator<Char_T, Tr>
, dan val
memiliki jenis double
atau long double
sesuai kebutuhan.
Jika nilai yang dikonversi tidak dapat direpresentasikan setstate(failbit)
sebagai jenis val
, fungsi memanggil . Bagaimanapun, ia mengembalikan *this
.
Contoh
// 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
Menetapkan di sisi kanan operator ke objek ini. Ini adalah penetapan pemindahan yang rvalue
melibatkan referensi yang tidak meninggalkan salinan di belakang.
basic_istream& operator=(basic_istream&& right);
Parameter
right
Referensi rvalue
ke basic_ifstream
objek.
Tampilkan Nilai
Menampilkan *this
.
Keterangan
Operator anggota memanggil swap(right)
.
basic_istream::peek
Mengembalikan karakter berikutnya yang akan dibaca.
int_type peek();
Tampilkan Nilai
Karakter berikutnya yang akan dibaca.
Keterangan
Fungsi input yang tidak diformat mengekstrak elemen, jika memungkinkan, seolah-olah dengan mengembalikan rdbuf->sgetc
. Jika tidak, ia kembali traits_type::eof
. Untuk informasi lebih lanjut, lihat sgetc
dan eof
.
Contoh
// 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
Menempatkan karakter tertentu ke dalam aliran.
basic_istream<Char_T, Tr>& putback(
char_type Ch);
Parameter
Ch
Karakter yang akan dimasukkan kembali ke aliran.
Tampilkan Nilai
Aliran (*this
).
Keterangan
Fungsi input yang tidak diformat mengembalikan Ch
, jika memungkinkan, seolah-olah dengan memanggil rdbuf->sputbackc
. Jika rdbuf
adalah penunjuk null, atau jika panggilan untuk sputbackc
mengembalikan traits_type::eof
, fungsi memanggil setstate(badbit)
. Bagaimanapun, ia mengembalikan *this
.
Untuk informasi selengkapnya, lihat rdbuf
, sputbackc
, eof
, dan setstate
.
Contoh
// 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
Membaca jumlah karakter tertentu dari aliran dan menyimpannya dalam array.
Metode ini berpotensi tidak aman, karena bergantung pada pemanggil untuk memeriksa apakah nilai yang diteruskan sudah benar.
basic_istream<Char_T, Tr>& read(
char_type* str,
streamsize count);
Parameter
str
Array untuk membaca karakter.
count
Jumlah karakter yang akan dibaca.
Tampilkan Nilai
Aliran ( *this
).
Keterangan
Fungsi input yang tidak diformat mengekstrak hingga count
elemen dan menyimpannya dalam array yang dimulai di str
. Ekstraksi berhenti di awal akhir file, dalam hal ini fungsi memanggil setstate(failbit)
. Bagaimanapun, ia mengembalikan *this
. Untuk informasi selengkapnya, lihat setstate
.
Contoh
// 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
Membaca jumlah nilai karakter yang ditentukan.
Metode ini berpotensi tidak aman, karena bergantung pada pemanggil untuk memeriksa apakah nilai yang diteruskan sudah benar.
streamsize readsome(
char_type* str,
streamsize count);
Parameter
str
Array tempat readsome
menyimpan karakter yang dibacanya.
count
Jumlah karakter yang akan dibaca.
Tampilkan Nilai
Jumlah karakter benar-benar dibaca, gcount
.
Keterangan
Fungsi input yang tidak diformat ini mengekstrak hingga count
elemen dari aliran input dan menyimpannya dalam array str
.
Fungsi ini tidak menunggu input. Ini membaca data apa pun yang tersedia.
Contoh
// 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
Memindahkan posisi baca dalam aliran.
basic_istream<Char_T, Tr>& seekg(pos_type pos);
basic_istream<Char_T, Tr>& seekg(off_type off, ios_base::seekdir way);
Parameter
pos
Posisi absolut untuk memindahkan penunjuk baca.
off
Offset untuk memindahkan penunjuk baca relatif terhadap way
.
way
Salah ios_base::seekdir
satu enumerasi.
Tampilkan Nilai
Aliran (*this
).
Keterangan
Fungsi anggota pertama melakukan pencarian absolut, fungsi anggota kedua melakukan pencarian relatif.
Catatan
Jangan gunakan fungsi anggota kedua dengan file teks, karena Standard C++ tidak mendukung pencarian relatif dalam file teks.
Jika fail
adalah false
, fungsi anggota pertama memanggil newpos = rdbuf->pubseekpos(pos)
, untuk beberapa pos_type
objek newpos
sementara . Jika fail
adalah false
, fungsi kedua memanggil newpos = rdbuf->pubseekoff( off, way)
. Dalam kedua kasus, jika (off_type)newpos == (off_type)(-1)
(operasi penempatan gagal), fungsi memanggil istr.setstate(failbit)
. Kedua fungsi mengembalikan *this
.
Jika fail
adalah true
, fungsi anggota tidak melakukan apa-apa.
Untuk informasi selengkapnya, lihat rdbuf
, pubseekpos
, pubseekoff
, dan setstate
.
Contoh
// 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
Kelas berlapis menjelaskan objek yang deklarasinya menyusun fungsi input yang diformat dan tidak diformat.
class sentry {
public:
explicit sentry(
basic_istream<Char_T, Tr>& _Istr,
bool _Noskip = false);
operator bool() const;
};
Keterangan
Jika _Istr.good
adalah true
, konstruktor:
_Istr.tie->flush
Memanggil jika_Istr.tie
bukan penunjuk null.Secara efektif memanggil
ws(_Istr)
jika_Istr.flags & skipws
bukan nol.
Jika setelah persiapan seperti itu, _Istr.good
adalah false
, konstruktor memanggil _Istr.setstate(failbit)
. Bagaimanapun, konstruktor menyimpan nilai yang dikembalikan oleh _Istr.good
dalam status
. Panggilan selanjutnya untuk operator bool
memberikan nilai tersimpan ini.
Untuk informasi selengkapnya, lihat good
, tie
, flush
, ws
, flags
, skipws
, dan setstate
.
basic_istream::swap
Menukar isi dua basic_istream
objek.
void swap(basic_istream& right);
Parameter
right
Referensi lvalue
ke basic_istream
objek.
Keterangan
Fungsi anggota memanggil basic_ios::swap(right)
. Ini juga bertukar jumlah ekstraksi dengan jumlah ekstraksi untuk right
. Untuk informasi selengkapnya, lihat basic_ios::swap
.
basic_istream::sync
Menyinkronkan perangkat input terkait aliran dengan buffer aliran.
int sync();
Tampilkan Nilai
Jika rdbuf
adalah penunjuk null, fungsi mengembalikan -1. Jika tidak, ia memanggil rdbuf->pubsync
. Jika panggilan tersebut mengembalikan -1, fungsi akan memanggil setstate(badbit)
dan mengembalikan -1. Jika tidak, fungsi mengembalikan nol. Untuk informasi lebih lanjut, lihat pubsync
dan setstate
.
basic_istream::tellg
Melaporkan posisi baca saat ini di aliran.
pos_type tellg();
Tampilkan Nilai
Posisi saat ini di aliran.
Keterangan
Jika fail
adalah false
, fungsi anggota mengembalikan rdbuf->pubseekoff(0, cur, in)
. Jika tidak, ia kembali pos_type(-1)
. Untuk informasi lebih lanjut, lihat rdbuf
dan pubseekoff
.
Contoh
// 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
Menempatkan karakter baca terbaru kembali ke aliran.
basic_istream<Char_T, Tr>& unget();
Tampilkan Nilai
Aliran (*this
).
Keterangan
Fungsi input yang tidak diformat mengembalikan elemen sebelumnya dalam aliran, jika memungkinkan, seolah-olah dengan memanggil rdbuf->sungetc
Jika rdbuf
adalah penunjuk null, atau jika panggilan untuk sungetc
mengembalikan traits_type::eof
, fungsi memanggil setstate(badbit)
. Bagaimanapun, ia mengembalikan *this
.
Untuk informasi selengkapnya, lihat sungetc
, eof
, and setstate
. Dan untuk informasi tentang bagaimana unget
mungkin gagal, lihat basic_streambuf::sungetc
.
Contoh
// 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
Baca juga
Keamanan utas di Pustaka Standar C++
iostream
Pemrograman
iostreams
Konvensi
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk