Bufеrlashtirilgan kiritish va chiqarish

|
Bufеrlashtirilgan kiritish va chiqarish
|
bet | 5/6 | Sana | 15.05.2024 | Hajmi | 184,96 Kb. | | #235793 |
Bog'liq 1.5 amaliy1.4. Bufеrlashtirilgan kiritish va chiqarish.
Buferlashtirilgan kiritish va chiqarish. C++ tilida ekran va faylga Iodan tashqari kiritish va chiqarish vazifalarini lokalizatsiyalash sifatida massivlardan foydalanadigan qator funksiyalarni qo‘llab-quvvatlaydi.Massivlarga asoslangan kiritish / chiqarish konseptual (array-basedI/O)echimga o‘xshasada, C tilining IO funksiyalari bilan anologdir(ayniqsa,sscanf() va sprintf() funksiyalari).Massivlar yordamida kiritish/chiqarishC++tilida juda moslashuvchan va foydalidir,chunki unda foydalanuvchi tomonidan yaratilgan o‘zgaruvchilarni kiritish va chiqarishda ham foydalaniladi. Massivlar bilan kiritish/chiqarishning barcha jihatlarini qamrab olish mumkin emas, ammo, eng muhim va tez tez ishlatiladigan xususiyatlari amalga oshirish mumkin.Massivlar yordamida Ioni amalga oshirish uchun ham oqimlarni talab qilishini tushunish muhimdir.Oldingi ko‘nikmalaringizdan C++da IO amalarini bilishingiz mumkin.Biroq,kiritish/chiqishda paramertlar sifatida ob’ektlardan foydalanishning barcha afzalliklari haqida dasturchilarning ko‘nikmalari muhimdir.
Shuningdek,ma’lumot olish uchun,siz bir necha yangi xususiyatlarni boshqaradigan funksiyalar bilan tanishishingiz kerak.
Bu funksiyalar istalgan oqimni ma’lum xotira maydoniga bog‘lash uchun mo‘ljallangan. Bu amallar tugagandan so‘ng, barcha IO xusisiyatlari allaqachon dasturchi biladigan IO vazifalari yordamida amalga oshiriladi degan ko‘nikmaga olib keladi.Kiritish/chiqarish ob’ektlari sifatida massivdan foydalanishni boshlashdan oldin, kutubxonasini dasturingizga kiritilgan bo‘lishi kerak.Bu kutubxonadagi istrstream, ostrstream, va strstream sinflardan foydalanish mumkin. Bu sinflar, o‘z navbatida, kiritish,chiqish va kirish/chiqish uchun oqimlardan foydalanishga asoslangan. Ios sinfi bu sinflar uchun tayanch sinfdir, shuning uchun istream, ostream va iostream sinflarining barcha funksiyalari va manipulyatorlari istrstream,ostrstream va strstream sinflarida ham mavjud.Satr massivini chiqish uchun ostrstream sinf konstruktordan quyidagi asosiy shaklda foydalaniladi:
ostrstream chiqish_oqimi(char *bufer, streamsize
size, openmode mode = ios::out); Misol: Massivgachiqarish.
#include "stdafx.h"
#include #include using namespace std;
int main(){ char buf[255]; // chiqarish uchun bufer ostrstream ostr(buf, sizeof buf); // chiqarish uchun massiv
ostr << "kirish/chiqish massiv oqimi bilan ishlaydi.\n";
ostr << "oddiy kirish/chiqish kabi: \n " << 100; ostr <<' ' << 123.23 <<'\n';
// manipulyatordan ham foydalanish mumkin
ostr << hex << 100 << ' '; // identifikatordam ham ostr.setf(ios::scientific); ostr << 123.45 << ' '; ostr << ends; // oxirgi natijani chiqarish cout << buf; system("pause"); return 0;
}
Dastur natijasi:
kirish/chiqish massiv oqimi bilan ishlaydi. oddiy kirish/chiqish kabi:
100 123.2364 1.234500e+002 Misol: Massivga ma’lumotlarni kiritish.
#include "stdafx.h"
#include #include using namespace std; int main(){
char buf[] = "SalomBuxoro 1980 28.01 B";
istrstream istr(buf); char str[80]; float f; char c; int i; istr >> str >> i >> f >> c;
cout << str << ' ' << i << ' ' << f << ' ' << c <<
'\n';
system("pause"); return 0;
}
Dastur natijasi: SalomBuxoro 1980 28.01 B
|
| |