C++ tilida Fayllar bilan ishlash
1 O’zbekiston Respublikasi Samarqand Davlat Universiteti Matematika fakulteti Matematik Informatika yunalshi 225-guruh talabasi O’ktamov Shahbozjonning KURS ISHI Mavzu: C++ t ilida F ayllar bilan ishlash
2 Reja : Kirish 1. Matn va binar fayllar ; 2. O‘qish-yozish oqimlari. Standart oqimlar ; 3. Belgilarni o‘qish-yozish funksiyalari ; 4. Satrlarni o‘qish - yozish funksiyalari ; 5. Fayldan o‘qish-yozish funksiyalari ; Xulosa Foydalanilga adabiyot]
3 Kirish C++ dasturlash tili C tiliga asoslangan. C esa o'z navbatida B va BCPL Tillaridan kelib chiqqan. BCPL 1967 yilda Martin Richards tomonidan tuzilgan va operatsion sistemalarni yozish uchun mo'ljallangan edi. Ken Thompson o'zining B tilida BCPL ning ko'p hossalarini kiritgan va B da UNIX operatsion sistemasining birinchi versiyalarini yozgan. C tilini Dennis Ritchie B dan keltirib chiqardi va uni 1972 yili ilk bor Bell Laboratories da, DEC PDP-11 kompyuterida qo'lladi. C o'zidan oldingi B va BCPL tillarining juda ko'p muhim tomonlarini o'z ichiga olish bilan bir qatorda o'zgaruvchilarni tiplashtirdi va bir qator boshqa yangiliklarni kiritdi. Boshlanishda C asosan UNIX sistemalarida keng tarqaldi. Hozirda operatsion sistemalarning asosiy qismi C/C++ da yozilmoqda. C mashina arhitekturasiga bog'langan tildir. Lekin yahshi rejalashtirish orqali dasturlarni turli kompyuter platformalarida ishlaydigan qilsa bo'ladi. 1983 yilda, C tili keng tarqalganligi sababli, uni standartlash harakati boshlandi. Buning uchun Amerika Milliy Standartlar Komiteti (ANSI) qoshida X3J11 tehnik komitet tuzildi. Va 1989 yilda ushbu standart qabul qilindi. Standartni dunyo bo'yicha keng tarqatish maqsadida 1990 yilda ANSI va Dunyo Standartlar Tashkiloti (ISO) hamkorlikda C ning ANSI/ISO 9899:1990 standartini qabul qilishdi. Shu sababli C da yozilgan dasturlar kam miqdordagi o'zgarishlar yoki umuman o'zgarishlarsiz juda ko'p kompyuter platformalarida ishlaydi. C++ 1980 yillar boshida Bjarne Stroustrup tomonidan C ga asoslangan tarzda tuzildi. C++ juda ko'p qo'shimchalarni o'z ichiga olgan, lekin eng asosiysi u ob'ektlar bilan dasturlashga imkon beradi. Dasturlarni tez va sifatli yozish hozirgi kunda katta ahamiyat kasb etmoda. Buni ta'minlash uchun ob'ektli dasturlash g'oyasi ilgari surildi. Huddi 70-chi yillar boshida strukturali dasturlash kabi, programmalarni hayotdagi jismlarni modellashtiruvchi ob'ektlat orqali tuzish dasturlash sohasida inqilob qildi. C++ funksiya va ob'ektlarning juda boy kutubhonasiga ega. Yani C+ + da dasturlashni o'rganish ikki qismga bo'linadi. Birinchisi bu C++ ni o'zini o'rganish, ikkinchisi esa C++ ning standart kutubhonasidagi tayyor ob'ekt/funksiyalarni qo'llashni o'rganishdir.
41. Matn fayl - ASCII kodidagi belgilar bilan berilganlar maj-muasi. Belgilar ketma-ketligi satrlarga bo‘lingan bo‘ladi va satr-ning tugash alomati sifatida CR (karetkani qaytarish yoki ‘\r’) LF (satrni o‘tkazish yoki ‘\n’) belgilar juftligi hisoblanadi. Matn fayldan berilganlarni o‘qishda bu belgilar juftligi bitta CR belgisi bilan almashtiriladi va aksincha, yozishda CR belgisi ikkita CR va LF belgilariga almashtiriladi. Fayl oxiri #26 (^Z) belgisi bilan belgilanadi. Matn faylga boshqacha ta’rif berish ham mumkin. Agar faylni matn tahririda ekranga chiqarish va o‘qish mumkin bo‘lsa, bu matn fayl. Klaviatura ham kompьyuterga faqat matnlarni jo‘natadi. Boshqacha aytganda programma tomonidan ekranga chiqariladigan barcha ma’lumotlarni stdout nomidagi matn fayliga chiqarilmoqda deb qarash mumkin. Xuddi shunday klaviaturadan o‘qilayotgan har qanday berilganlarni matn faylidan o‘qilmoqda deb hisoblanadi. Matn fayllarining komponentalari satrlar deb nomlanadi. Satrlar uzluksiz joylashib, turli uzunlikda va bo‘sh bo‘lishi mum kin. Faraz qilaylik, T matn fayli 4 satrdan iborat bo‘lsin Belgini oqimga chiqarish uchun putc() makrosi aniqlangan va uning prototipi int putc(int c, FILE*stream) ko‘rinishida aniqlangan. putc() funksiyasi stream nomi bilan berilgan oqimga s belgini chiqaradi. Funksiya qaytaruvchi qiymati sifatida int turiga aylantirilgan s belgi bo‘ladi. Agar belgini chiqarishda xatolik ro‘y bersa EOF qaytariladi. putc() funksiyasini standart stdout oqimi bilan bog‘langan holati - putc(c,strout) uchun putchar(c) makrosi aniqlangan. Satrlarni o‘qish - yozish funksiyalari Oqimdan satrni o‘qishga mo‘ljallangan gets() funksiyasining prototipi char * gets(char *s); ko‘rinishida aniqlangan. gets() funksiyasi standart oqimdan satrni o‘qiydi va uni s o‘zgaruvchisiga joylashtiradi. Joylashtirish payti-da oqimdagi ‘\n’ belgisi ‘\0’ belgisi bilan almashtiriladi. Bu funksiyani ishlatishda o‘qilayotgan satrning uzunligi s satr uchun ajratilgan joy uzunligidan oshib ketmasligini nazorat qilish kerak bo‘ladi.
5puts() funksiyasi int puts(const char *s); ko‘rinishida bo‘lib, u standrat oqimga argumentda ko‘rsatilgan satrni chiqaradi. Bunda satr oxiriga yangi satrga o‘tish belgisi ‘\n’ qo‘shiladi. Agar satrni oqimga chiqarish muvaffaqiyatli bo‘lsa puts() funksiyasi manfiy bo‘lmagan sonni, aks holda EOF qaytaradi. Satrni o‘qish-yozish funksiyalarini ishlatishga misol tariqa-sida qo‘yidagi programmani keltirish mumki n : 1- satr#13#10 2- satr uzunroq #13#10 #13#10 4- satr#13#10#26 12.3-rasm. To‘rtta satrdan tashkil topgan matn fayli Matnni ekranga chiqarishda satr oxiridagi #13#10 boshqaruv belgilari juftligi kursorni keyingi qatorga tushiradi va uni satr boshiga olib keladi. Bu matn fayl ekranga chop etilsa, uning ko‘rinishi quyidagicha bo‘ladi: 1- satr[13][10] 2- satr uzunroq[13][10] [13][10] 4- satr[13][10] [26] Matndagi [n] - n- kodli boshqaruv belgisini bildiradi. Odatda matn tahrirlari bu belgilarni ko‘rsatmaydi. Bina rfayllar - bu oddiygina b ayt lar ketma-ketligi. Odatda binar fayllardan berilganlarni foydalanuvchi tomonidan bevosita «ko‘rish» zarur bo‘lmagan hollarda ishlatiladi. Binar fayllardan o‘qish-yozishda baytlar ustida hech qanday konvertatsiya amallari bajarilmaydi. 2. O‘qish-yozish oqimlari. Standart oqimla r . Oqim tushunchasi berilganlarni faylga o‘qish-yozishda ularni belgilar ketma-ketligi yoki oqimi ko‘rinishida tasavvur qilishdan kelib chiqqan. Oqim ustida quyidagi amallarni bajarish mumkin: oqimdan berilganlar blokini operativ xotiraga o‘qish;