basic_filebuf Sınıfı
Karakter özellikleri Tr sınıfı tarafından belirlenen Char_T türündeki öğelerin dış dosyada depolanan öğeler dizisine ve dizisine iletilmesini denetleyen bir akış arabelleği açıklar.
Sözdizimi
template <class Char_T, class Tr = char_traits<Char_T>>
class basic_filebuf : public basic_streambuf<Char_T, Tr>
Parametreler
Char_T
Dosya arabelleğinin temel öğesi.
Tr
Dosya arabelleğinin temel öğesinin özellikleri (genellikle char_traits<Char_T>
).
Açıklamalar
Sınıf şablonu, karakter özellikleri Tr sınıfı tarafından belirlenen Char_T türündeki öğelerin bir dış dosyada depolanan öğeler dizisine ve dizisine iletilmesini denetleyen bir akış arabelleği açıklar.
Not
türündeki basic_filebuf
nesneler, Char_T tür parametresi tarafından belirtilenden char_type
bağımsız olarak char* türünde bir iç arabellekle oluşturulur. Bu, bir Unicode dizesinin (karakter içeren wchar_t
) iç arabelleğe yazılmadan önce ANSI dizesine (karakter içeren char
) dönüştürüleceği anlamına gelir. Unicode dizelerini arabellekte depolamak için türünde wchar_t
yeni bir arabellek oluşturun ve yöntemini kullanarak basic_streambuf::pubsetbuf
()
ayarlayın. Bu davranışı gösteren bir örnek görmek için aşağıya bakın.
sınıfının basic_filebuf<Char_T, Tr>
nesnesi, açık bir dosyayla ilişkili akışı denetleyen nesneyi belirten bir dosya işaretçisi depolar FILE
. Ayrıca, korumalı üye işlevlerinin taşması ve taşması tarafından kullanılmak üzere iki dosya dönüştürme modeline yönelik işaretçileri depolar. Daha fazla bilgi için bkz. basic_filebuf::open
.
Örnek
Aşağıdaki örnekte, yöntemini çağırarak türündeki basic_filebuf<wchar_t>
bir nesnenin iç arabelleğinde Unicode karakterleri depolamaya nasıl zorlandığı gösterilmektedir pubsetbuf()
.
// unicode_basic_filebuf.cpp
// compile with: /EHsc
#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
#include <memory.h>
#include <string.h>
#define IBUFSIZE 16
using namespace std;
void hexdump(const string& filename);
int main()
{
wchar_t* wszHello = L"Hello World";
wchar_t wBuffer[128];
basic_filebuf<wchar_t> wOutFile;
// Open a file, wcHello.txt, then write to it, then dump the
// file's contents in hex
wOutFile.open("wcHello.txt",
ios_base::out | ios_base::trunc | ios_base::binary);
if(!wOutFile.is_open())
{
cout << "Error Opening wcHello.txt\n";
return -1;
}
wOutFile.sputn(wszHello, (streamsize)wcslen(wszHello));
wOutFile.close();
cout << "Hex Dump of wcHello.txt - note that output is ANSI chars:\n";
hexdump(string("wcHello.txt"));
// Open a file, wwHello.txt, then set the internal buffer of
// the basic_filebuf object to be of type wchar_t, then write
// to the file and dump the file's contents in hex
wOutFile.open("wwHello.txt",
ios_base::out | ios_base::trunc | ios_base::binary);
if(!wOutFile.is_open())
{
cout << "Error Opening wwHello.txt\n";
return -1;
}
wOutFile.pubsetbuf(wBuffer, (streamsize)128);
wOutFile.sputn(wszHello, (streamsize)wcslen(wszHello));
wOutFile.close();
cout << "\nHex Dump of wwHello.txt - note that output is wchar_t chars:\n";
hexdump(string("wwHello.txt"));
return 0;
}
// dump contents of filename to stdout in hex
void hexdump(const string& filename)
{
fstream ifile(filename.c_str(),
ios_base::in | ios_base::binary);
char *ibuff = new char[IBUFSIZE];
char *obuff = new char[(IBUFSIZE*2)+1];
int i;
if(!ifile.is_open())
{
cout << "Cannot Open " << filename.c_str()
<< " for reading\n";
return;
}
if(!ibuff || !obuff)
{
cout << "Cannot Allocate buffers\n";
ifile.close();
return;
}
while(!ifile.eof())
{
memset(obuff,0,(IBUFSIZE*2)+1);
memset(ibuff,0,IBUFSIZE);
ifile.read(ibuff,IBUFSIZE);
// corner case where file is exactly a multiple of
// 16 bytes in length
if(ibuff[0] == 0 && ifile.eof())
break;
for(i = 0; i < IBUFSIZE; i++)
{
if(ibuff[i] >= ' ')
obuff[i] = ibuff[i];
else
obuff[i] = '.';
cout << setfill('0') << setw(2) << hex
<< (int)ibuff[i] << ' ';
}
cout << " " << obuff << endl;
}
ifile.close();
}
Hex Dump of wcHello.txt - note that output is ANSI chars:
48 65 6c 6c 6f 20 57 6f 72 6c 64 00 00 00 00 00 Hello World.....
Hex Dump of wwHello.txt - note that output is wchar_t chars:
48 00 65 00 6c 00 6c 00 6f 00 20 00 57 00 6f 00 H.e.l.l.o. .W.o.
72 00 6c 00 64 00 00 00 00 00 00 00 00 00 00 00 r.l.d...........
Oluşturucular
Oluşturucu | Açıklama |
---|---|
basic_filebuf | türünde basic_filebuf bir nesnesi oluşturur. |
Tür tanımları
Tür adı | Açıklama |
---|---|
char_type | Bir tür adını şablon parametresiyle Char_T ilişkilendirir. |
int_type | Bu türü kapsamın içinde basic_filebuf , kapsamdaki aynı adın türüne Tr eşdeğer hale getirir. |
off_type | Bu türü kapsamın içinde basic_filebuf , kapsamdaki aynı adın türüne Tr eşdeğer hale getirir. |
pos_type | Bu türü kapsamın içinde basic_filebuf , kapsamdaki aynı adın türüne Tr eşdeğer hale getirir. |
traits_type | Bir tür adını şablon parametresiyle Tr ilişkilendirir. |
Üye işlevleri
Üye işlevi | Açıklama |
---|---|
close | Bir dosyayı kapatır. |
is_open | Bir dosyanın açık olup olmadığını gösterir. |
open | Bir dosya açar. |
taşma | Tam arabelleğe yeni bir karakter eklendiğinde çağrılabilen korumalı bir sanal işlev. |
pbackfail | Korumalı sanal üye işlevi bir öğeyi giriş akışına geri yerleştirmeye çalışır, ardından bunu geçerli öğe yapar (sonraki işaretçi tarafından işaret edilir). |
ara | Korumalı sanal üye işlevi, denetlenen akışlar için geçerli konumları değiştirmeye çalışır. |
seekpos | Korumalı sanal üye işlevi, denetlenen akışlar için geçerli konumları değiştirmeye çalışır. |
setbuf | Korumalı sanal üye işlevi, türetilmiş her akış arabelleğine özel bir işlem gerçekleştirir. |
Değiş tokuş etmek | Sağlanan basic_filebuf parametrenin içeriği için bunun basic_filebuf içeriğini değiştirir. |
Eşitleme | Korumalı, sanal işlev denetlenen akışları ilişkili dış akışlarla eşitlemeye çalışır. |
uflow | Korumalı, giriş akışından geçerli öğeyi ayıklamak için sanal işlev. |
yetersiz akış | Korumalı, giriş akışından geçerli öğeyi ayıklamak için sanal işlev. |
Gereksinimler
Üst Bilgi:<fstream>
Ad alanı: std
basic_filebuf::basic_filebuf
türünde basic_filebuf
bir nesnesi oluşturur.
basic_filebuf();
basic_filebuf(basic_filebuf&& right);
Açıklamalar
İlk oluşturucu, giriş arabelleği ve çıkış arabelleği denetleen tüm işaretçilerde null bir işaretçi depolar. Ayrıca, dosya işaretçisinde null bir işaretçi depolar.
İkinci oluşturucu, nesnesini içeriğiyle right
başlatır ve rvalue başvurusu olarak değerlendirilir.
basic_filebuf::char_type
Bir tür adını şablon parametresiyle Char_T
ilişkilendirir.
typedef Char_T char_type;
basic_filebuf::close
Bir dosyayı kapatır.
basic_filebuf<Char_T, Tr> *close();
Dönüş Değeri
Üye işlevi, dosya işaretçisi null işaretçiyse null bir işaretçi döndürür.
Açıklamalar
close
çağrısında bulunur fclose(fp)
. Bu işlev sıfır olmayan bir değer döndürürse, işlev null bir işaretçi döndürür. Aksi takdirde, dosyanın başarıyla kapatıldığını belirtmek için döndürür this
.
Geniş bir akış için, akış açıldıktan sonra veya son çağrısından streampos
bu yana herhangi bir ekleme yapıldıysa, işlevi öğesini çağırır overflow
. Ayrıca, gerektiğinde çağırmak fac.unshift
için dosya dönüştürme modelini fac
kullanarak ilk dönüştürme durumunu geri yüklemek için gereken tüm dizileri ekler. Türünde char
üretilen her öğebyte
, dosya işaretçisi fp
tarafından formun fputc(byte, fp)
ardışık çağrıları tarafından belirlenmiş ilişkili akışa yazılır. çağrısı fac.unshift
veya herhangi bir yazma işlemi başarısız olursa işlev başarılı olmaz.
Örnek
Aşağıdaki örnekte, geçerli dizinde iki dosya olduğu varsayılır: basic_filebuf_close.txt ("test edilen içerik") ve iotest.txt ("ssss" içeriğidir).
// basic_filebuf_close.cpp
// compile with: /EHsc
#include <fstream>
#include <iostream>
int main() {
using namespace std;
ifstream file;
basic_ifstream <wchar_t> wfile;
char c;
// Open and close with a basic_filebuf
file.rdbuf()->open( "basic_filebuf_close.txt", ios::in );
file >> c;
cout << c << endl;
file.rdbuf( )->close( );
// Open/close directly
file.open( "iotest.txt" );
file >> c;
cout << c << endl;
file.close( );
// open a file with a wide character name
wfile.open( L"iotest.txt" );
// Open and close a nonexistent with a basic_filebuf
file.rdbuf()->open( "ziotest.txt", ios::in );
cout << file.fail() << endl;
file.rdbuf( )->close( );
// Open/close directly
file.open( "ziotest.txt" );
cout << file.fail() << endl;
file.close( );
}
t
s
0
1
basic_filebuf::int_type
Kapsam içindeki basic_filebuf
bu türü, kapsamdaki aynı adın türüne Tr
eşdeğer hale getirir.
typedef typename traits_type::int_type int_type;
basic_filebuf::is_open
Bir dosyanın açık olup olmadığını gösterir.
bool is_open() const;
Dönüş Değeri
true
dosya işaretçisi null değilse.
Örnek
// basic_filebuf_is_open.cpp
// compile with: /EHsc
#include <fstream>
#include <iostream>
int main( )
{
using namespace std;
ifstream file;
cout << boolalpha << file.rdbuf( )->is_open( ) << endl;
file.open( "basic_filebuf_is_open.cpp" );
cout << file.rdbuf( )->is_open( ) << endl;
}
false
true
basic_filebuf::off_type
Kapsam içindeki basic_filebuf
bu türü, kapsamdaki aynı adın türüne Tr
eşdeğer hale getirir.
typedef typename traits_type::off_type off_type;
basic_filebuf::open
Bir dosya açar.
basic_filebuf<Char_T, Tr> *open(
const char* filename,
ios_base::openmode mode,
int protection = (int)ios_base::_Openprot);
basic_filebuf<Char_T, Tr> *open(
const char* filename,
ios_base::openmode mode);
basic_filebuf<Char_T, Tr> *open(
const wchar_t* filename,
ios_base::openmode mode,
int protection = (int)ios_base::_Openprot);
basic_filebuf<Char_T, Tr> *open(
const wchar_t* filename,
ios_base::openmode mode);
Parametreler
filename
Açılacak dosyanın adı.
mod
içindeki ios_base::openmode
sabit listelerinden biri.
koruma
_fsopen'daki shflag parametresine eşdeğer varsayılan dosya açma koruması _wfsopen.
Dönüş Değeri
Arabellek zaten açıksa veya dosya işaretçisi null bir işaretçiyse, işlev null bir işaretçi döndürür. Aksi takdirde döndürür this
.
Açıklamalar
Bu işlev, çağrısı fopen/wfopen
(filename, strmode)
yapmışsınız gibi öğesini yedeklemek basic_filebuf
için bir FILE *
kullanır. strmode
şu kaynaktan mode & ~(
binary
ate
|
)
belirlenir:
ios_base::in
olur"r"
(mevcut dosyayı okumak için açın).- ios_base::out veya
ios_base::out | ios_base::trunc
olur"w"
(var olan dosyayı kes veya yazmak için oluştur). ios_base::out | app
olur"a"
(tüm yazmaları eklemek için mevcut dosyayı açın).ios_base::in | ios_base::out
olur"r+"
(okuma ve yazma için mevcut dosyayı açın).ios_base::in | ios_base::out | ios_base::trunc
olur"w+"
(mevcut dosyayı kes veya okuma ve yazma için oluştur).ios_base::in | ios_base::out | ios_base::app
olur"a+"
(var olan dosyayı okumak ve tüm yazmaları eklemek için açın).
Sıfır mode & ios_base::binary
değilse, işlevi sonuna ekleyerek b
strmode
metin akışı yerine ikili bir akış açar.
Sıfır değilse ve dosya başarıyla açıldıysa mode & ios_base::ate
, akıştaki geçerli konum dosyanın sonunda konumlandırılır. Bu başarısız olursa, dosya kapatılır.
Yukarıdaki işlemler başarıyla tamamlandıysa, dosya dönüştürme modelini, taşma ve taşma tarafından kullanmak üzere belirlenir:)
> >(
getloc
use_facet<codecvt<Char_T, char, traits_type::
state_type
.
Dosya başarıyla açılamıyorsa döndürülür nullptr
.
Örnek
kullanan open
bir örnek için bkzbasic_filebuf::close
. .
basic_filebuf::operator=
Bu akış arabellek nesnesinin içeriğini atayın. Bu, arkasında bir kopya bırakmayan bir rvalue içeren taşıma atamasıdır.
basic_filebuf& operator=(basic_filebuf&& right);
Parametreler
Sağ
bir basic_filebuf nesnesine rvalue başvurusu.
Dönüş Değeri
*this
döndürür.
Açıklamalar
Üye işleci, nesnesinin içeriğini rvalue başvurusu olarak değerlendirilen içeriğini right
kullanarak değiştirir. Daha fazla bilgi için bkz . Rvalue başvuru bildirimcisi: &.
basic_filebuf::overflow
Tam arabelleğe yeni bir karakter eklendiğinde çağrılır.
virtual int_type overflow(int_type _Meta = traits_type::eof);
Parametreler
_Meta
Arabelleğe veya traits_type::eof
içine eklenecek karakter.
Dönüş Değeri
İşlev başarılı olamazsa döndürür traits_type::eof
. Aksi takdirde döndürür traits_type::
not_eof
(_Meta)
.
Açıklamalar
ise_Meta != traits_type::
eof
, korumalı sanal üye işlevi öğeyi(_Meta)
ch = traits_type::
to_char_type
çıkış arabelleğine eklemeyi dener. Bunu çeşitli yollarla yapabilir:
Bir yazma konumu varsa, öğeyi yazma konumuna depolayabilir ve çıkış arabelleği için sonraki işaretçiyi artırabilir.
Çıkış arabelleği için yeni veya ek depolama alanı ayırarak yazma konumunu kullanılabilir hale getirir.
Gerektiğinde çağırmak
fac.out
için dosya dönüştürme modelinifac
kullanarak çıkış arabelleğindeki bekleyen çıktıları ve ardındanch
öğesini dönüştürebilir. char türünde üretilen her öğech
, dosya işaretçisifp
tarafından formunfputc(ch, fp)
ardışık çağrıları tarafından belirlenmiş ilişkili akışa yazılır. Herhangi bir dönüştürme veya yazma işlemi başarısız olursa işlev başarılı olmaz.
basic_filebuf::p backfail
Bir öğeyi giriş akışına geri yerleştirmeye çalışır, sonra bunu geçerli öğe yapar (sonraki işaretçinin işaret ettiği).
virtual int_type pbackfail(int_type _Meta = traits_type::eof);
Parametreler
_Meta
Arabelleğe eklenecek karakter veya traits_type::eof
.
Dönüş Değeri
İşlev başarılı olamazsa döndürür traits_type::eof
. Aksi takdirde döndürür traits_type::
not_eof
(_Meta)
.
Açıklamalar
Korumalı sanal üye işlevi bir öğeyi giriş arabelleğine geri koyar ve ardından geçerli öğe yapar (sonraki işaretçi tarafından işaret edilir). ise _Meta == traits_type::
eof
, geri itme öğesi geçerli öğeden önceki akışta bulunan öğedir. Aksi takdirde, bu öğe ile ch = traits_type::
to_char_type
(_Meta)
değiştirilir. işlevi bir öğeyi çeşitli yollarla geri koyabilir:
Bir
putback
konum varsa ve orada depolanan öğe ile eşitsech
, giriş arabelleği için sonraki işaretçiyi azaltabilir.İşlev bir
putback
konumu kullanılabilir hale getirebiliyorsa, bunu yapabilir, sonraki işaretçiyi bu konuma işaret etmek için ayarlayabilir ve bu konumda depolayabilirch
.İşlev bir öğeyi giriş akışına geri gönderebiliyorsa, örneğin türünde
char
bir öğe çağırarakungetc
bunu yapabilir.
basic_filebuf::p os_type
Kapsam içindeki basic_filebuf
bu türü, kapsamdaki aynı adın türüne Tr
eşdeğer hale getirir.
typedef typename traits_type::pos_type pos_type;
basic_filebuf::seekoff
Denetimli akışlar için geçerli konumları değiştirmeye çalışır.
virtual pos_type seekoff(
off_type _Off,
ios_base::seekdir _Way,
ios_base::openmode _Which = ios_base::in | ios_base::out);
Parametreler
_Kapalı
_Way göre aranacak konum.
_Yol
Uzaklık işlemleri için başlangıç noktası. Olası değerler için bkz . seekdir .
_Hangi
İşaretçi konumunun modunu belirtir. Varsayılan ayar, okuma ve yazma konumlarını değiştirmenize izin vermektir.
Dönüş Değeri
Yeni konumu veya geçersiz bir akış konumunu döndürür.
Açıklamalar
Korumalı sanal üye işlevi, denetlenen akışlar için geçerli konumları değiştirmeyi dener. sınıfının basic_filebuf
<Char_T, Tr>
bir nesnesi için bir akış konumu, bir uzaklığı ve geniş bir akışı ayrıştırmak için gereken durum bilgilerini depolayan türünde fpos_t
bir nesneyle temsil edilebilir. Sıfır uzaklığı, akışın ilk öğesine başvurur. (Türündeki pos_type
bir nesne en az bir fpos_t
nesne depolar.)
Hem okuma hem de yazma için açılan bir dosya için hem giriş hem de çıkış akışları birlikte konumlandırılır. Ekleme ve ayıklama arasında geçiş yapmak için veya pubseekpos
çağrısı pubseekoff
yapmanız gerekir. çağrısı pubseekoff
(ve dolayısıyla içinseekoff
) metin akışları, ikili akışlar ve geniş akışlar için çeşitli sınırlamalara sahiptir.
Dosya işaretçisi fp
null bir işaretçiyse işlev başarısız olur. Aksi takdirde çağırarak fseek(fp, _Off, _Way)
akış konumunu değiştirmeyi dener. Bu işlev başarılı olursa ve sonuçta elde edilen konum fposn
çağrılarak fgetpos(fp, &fposn)
belirlenebilirse, işlev başarılı olur. İşlev başarılı olursa içeren türde pos_type
fposn
bir değer döndürür. Aksi takdirde geçersiz bir akış konumu döndürür.
basic_filebuf::seekpos
Denetimli akışlar için geçerli konumları değiştirmeye çalışır.
virtual pos_type seekpos(
pos_type _Sp,
ios_base::openmode _Which = ios_base::in | ios_base::out);
Parametreler
_Sp
Aranacak konum.
_Hangi
İşaretçi konumunun modunu belirtir. Varsayılan ayar, okuma ve yazma konumlarını değiştirmenize izin vermektir.
Dönüş Değeri
Dosya işaretçisi fp
null bir işaretçiyse işlev başarısız olur. Aksi takdirde, çağrısı fsetpos(fp, &fposn)
yaparak akış konumunu değiştirmeyi dener; burada fposn
içinde depolanan pos
nesnedirfpos_t
. Bu işlev başarılı olursa işlevi döndürür pos
. Aksi takdirde geçersiz bir akış konumu döndürür. Akış konumunun geçersiz olup olmadığını belirlemek için dönüş değerini ile pos_type(off_type(-1))
karşılaştırın.
Açıklamalar
Korumalı sanal üye işlevi, denetlenen akışlar için geçerli konumları değiştirmeyi dener. sınıfının basic_filebuf
<Char_T, Tr>
bir nesnesi için bir akış konumu, bir uzaklığı ve geniş bir akışı ayrıştırmak için gereken durum bilgilerini depolayan türünde fpos_t
bir nesneyle temsil edilebilir. Sıfır uzaklığı, akışın ilk öğesine başvurur. (Türündeki pos_type
bir nesne en az bir fpos_t
nesne depolar.)
Hem okuma hem de yazma için açılan bir dosya için hem giriş hem de çıkış akışları birlikte konumlandırılır. Ekleme ve ayıklama arasında geçiş yapmak için veya pubseekpos
çağrısı pubseekoff
yapmanız gerekir. pubseekoff
(ve içinseekoff
) çağrılarının metin akışları, ikili akışlar ve geniş akışlar için çeşitli sınırlamaları vardır.
Geniş bir akış için, akış açıldıktan sonra veya son çağrısından streampos
bu yana herhangi bir ekleme yapıldıysa, işlevi öğesini çağırır overflow
. Ayrıca, gerektiğinde çağırmak fac.unshift
için dosya dönüştürme modelini fac
kullanarak ilk dönüştürme durumunu geri yüklemek için gereken tüm dizileri ekler. Türünde char
üretilen her öğebyte
, dosya işaretçisi fp
tarafından formun fputc(byte, fp)
ardışık çağrıları tarafından belirlenmiş ilişkili akışa yazılır. çağrısı fac.unshift
veya herhangi bir yazma işlemi başarısız olursa işlev başarılı olmaz.
basic_filebuf::setbuf
Türetilen her akış arabelleğine özel bir işlem gerçekleştirir.
virtual basic_streambuf<Char_T, Tr> *setbuf(
char_type* _Buffer,
streamsize count);
Parametreler
_Arabellek
Arabelleğe işaretçi.
count
Arabelleğin boyutu.
Dönüş Değeri
Korumalı üye işlevi, dosya işaretçisi fp
null işaretçiyse sıfır döndürür.
Açıklamalar
setbuf
_Buffer'da başlayan öğe dizisini count
akış için bir arabellek olarak sunmaya yönelik çağrılarsetvbuf( fp, (char*) _Buffer, _IOFBF, count * sizeof( Char_T))
. Bu işlev sıfır olmayan bir değer döndürürse, işlev null bir işaretçi döndürür. Aksi takdirde, başarı sinyaline döner this
.
basic_filebuf::swap
Sağlanan basic_filebuf
öğesinin içeriği için bunun basic_filebuf
içeriğini değiştirir.
void swap(basic_filebuf& right);
Parametreler
Sağ
Başka bir basic_filebuf
öğesine lvalue başvurusu.
basic_filebuf::sync
Denetlenen akışları ilişkili dış akışlarla eşitlemeye çalışır.
virtual int sync();
Dönüş Değeri
Dosya işaretçisi fp
null işaretçiyse sıfır döndürür. Aksi takdirde, yalnızca hem taşmaya çağrı yapılırsa hem fflush(fp)
de bekleyen çıkışların akışa boşaltılması başarılı olursa sıfır döndürür.
basic_filebuf::traits_type
Bir tür adını şablon parametresiyle Tr
ilişkilendirir.
typedef Tr traits_type;
basic_filebuf::underflow
Giriş akışından geçerli öğeyi ayıklar.
virtual int_type underflow();
Dönüş Değeri
İşlev başarılı olamazsa döndürür traits_type::
eof
. Aksi takdirde, ch
döndürür, Açıklamalar bölümünde açıklandığı gibi dönüştürülür.
Açıklamalar
Korumalı sanal üye işlevi, giriş akışından geçerli öğeyi ch
ayıklamayı ve öğesini olarak traits_type::
to_int_type
(ch)
döndürmeyi dener. Bunu çeşitli yollarla yapabilir:
Okuma konumu varsa, okuma konumunda depolanan öğe olarak alır
ch
ve giriş arabelleği için sonraki işaretçiyi ilerletir.biçimindeki bir veya daha fazla öğeyi
char
, formunfgetc(fp)
ardışık çağrıları gibi okuyabilir ve gerektiğinde çağırmakfac.in
için dosya dönüştürme modelinifac
kullanarak bunları türündeChar_T
bir öğeyech
dönüştürebilir. Herhangi bir okuma veya dönüştürme başarısız olursa işlev başarılı olmaz.
Ayrıca bkz.
<fstream>
C++ Standart Kitaplığında İş Parçacığı Güvenliği
iostream Programlaması
iostreams Kuralları