Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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
countdalam kode sebelumnya).
Contoh
Lihat contoh kelasbasic_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. |
Operator
| Pengoperasi | 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>
kumpulan nama XML: 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 int_type dengan meta 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 - 1elemen.
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 - 1elemen.
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 valsebagai jenis setstate(failbit), 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 valsebagai jenis setstate(failbit), 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 newpossementara . 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->flushMemanggil jika_Istr.tiebukan penunjuk null.Secara efektif memanggil
ws(_Istr)jika_Istr.flags & skipwsbukan 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
Lihat juga
Keamanan utas di Pustaka Standar C++
iostream Pemrograman
iostreams Konvensi