91
istream dan S ga simvolni o‘qiydi. Хato xolatida S 0XFF qiymatini oladi.
int get();
istream dan keyingi simvolni chiqaradi. Faylni oxirini aniqlagach EOFni
qaytaradi.
istream& get(char* buffer,int size,char delimiter=’\n’);
Bu funksiya istreamdan simvollarni chiqaradi va ularni buferga nusxalaydi.
Operatsiya yoki faylning oxiriga yetganda, yoki size fayllardan nusxa olgan
jarayonda, yoki ko‘rsatilgan ajratuvchini aniqlaganda to‘xtaydi. Ajratuvchi esa
nusxalanmaydi va streambuf qoladi. O‘qib bulingan simvollar ketma-ketligi hardoim
nul simvol bilan tugatiladi.
istream& getline(char* buffer,int size, char delimiter=’\n’);
Ajratuvchi oqimdan chiqariladi, lekin, buferga kiritilmaydi. Bu esa satrlarni
oqimdan chiqaruvchi asosiy funksiya. O‘kib chiqilgan simvollar nul simvoli bilan
ta’momlanadi.
istream& read(char* buffer,int size);
Ajratuvchilarni qo‘llanmaydi va buferga o‘qilgan simvollar
nul simvoli bilan
tugamaydi.
int peek();
istream dan simvolni chiqarmasdan istreamga qaytaradi.
int gcount();
Formatlanmagan oxirgi kiritish operatsiyasi vaqtida o‘qilgan simvollar sonini
qaytaradi.
istream& putback(S)
Agar get doirasidagi streambuf obyektida bo‘sh fazo mavjud bo‘lsa, unda o‘sha
yerga S simvoli joylashtiriladi.
istream& ignore(int count=1,int target=EOF);
Quyidagilar bajarilmaguncha istream dan simvol chiqarilaveradi:
funksiya count simvollarni chiqarmaguncha;
target simvoli aniqlanmaguncha;
92
faylni oxiriga yetmaguncha.
Ostream sinfida quyidagi funksiyalar tavsiflangan: ostream& put(char C);
ostream ga S simvolni joylashtiradi. ostream& write(const char* buffer,int size);
Buferda mavjudlarni ostreamga yozadi. Хatoga duch kelmaguncha yoki size
simvollarni nusxasi olmaguncha simvollarni nusxasi olinadi. Bufer formatlanmasdan
yoziladi. Nol simvollarga ishlov berish boshqa ishlov berishlardan farq qilmaydi.
Quyidagi funksiya ishlov berilmagan (binar va matnli) ma’lumotlarni ostreamga
uzatadi.
ostream& flush();
streambuf buferni olib tashlaydi.
Bu funksiyalardan tashqari istream sinfda >>, ostream sinfda esa <<
operatsiyalar qayta yuklangan. << va >> operatsiyalar ikkita operandga ega. Chap
operandi – bu istream (ostream) sinfning obyekti, o‘ng operandi esa – bu dasturlash
tilida ko‘rsatilgan tipdagi ma’lumot. Misol:
char ch, next, lookahead;
while ( cin.get( ch ))
{
switch (ch) {
case '/':
// izoxni peek()
yordamida tekshirish
// agar xa bo‘lsa satr qolganini o‘tkazish
next = cin.peek();
if ( next == '/' )
cin.ignore( lineSize, '\n' );
break;
case '>':
// leksemaga tekshirish >>=
next = cin.peek();
if ( next == '>' ) {
lookahead = cin.get();
93
next = cin.peek();
if ( next != '=' )
cin.putback( lookahead );
}
// ...
Dostları ilə paylaş: