C++ da fayl tizimi (File system in C++)
Fayllarni qayta ishlash dasturlashning muhim jihati bo'lib, dasturlarga fayllarda saqlangan ma'lumotlarni olish va boshqarish imkonini beradi. C++ dasturlash tilida ushbu amaliyotlar <fstream>
standart kutubxonasi tomonidan amalga oshiriladi. C++ da fayllar ma’lumotlar oqimi sifatida ko‘riladi. C++ fayllar bilan ishlashda uchta fayl oqimini taqdim qiladi:
- ifstream - Fayldan ma’lumotlarni o’qish
- ofstream - Faylga ma’lumot yozish
- fstream - Yuqoridagi ikkita oqimning kombinatsiyalashgan turi
Fayllar bilan ishlashdan avval ushbu kutubxonani dasturimizga chaqirib olish talab etiladi:
Fayl ochish va yopish
C++ da fayl ochish quidagicha amalga oshiriladi.
Yuqorida ofstream oqimidan foydalangan holda fayl hosil qilib unga “Assalomu alaykum!!!” matnini yozishga erishdik.
Fayldan ma’lumotlarni o’qish
Yuqorida fayl hosil qilib unga ma’lumot yozish dasturini ko’rdik. Endi esa o’sha fayldagi ma’lumotlarni o’qishni ya’ni ekranga chiqarish dasturini yozib ko’ramiz.
Ushbu dasturimizda getline() funksiyamizdan foydalandik. Esingizda bo’lsa undan avval ham foydalanuvchidan ma’lumot olishda foydalangan edik.
while sikli faylning oxirigacha davom etadi getline() funksiyamz bir vaqtning o’zida fayldan bir qatorni o’qib qator o’zgaruvchisiga saqlaydi. cout funksiyamiz esa ushbu qatorni ekranga chop qiladi.
Faylga ma’lumot qo’shish
Yuqoridagi faylga yozish dasturi har safar fayl kontentini yangidan yozadi ya’ni birinchi foydalanishda “Assalomu alaykum!!!” matnini faylga yozib keyingi foydalanishda boshqa matn kiritilsa dastur birinchi foydalanishda yozilgan kontentni o’chirib o’rniga yangi kontentni yozadi. Agar bizga faylni eski kontentini saqlagan holda ma’lumot qo’shish kerak bo’lsachi?
Ushbu holatda biz ios::app yorlig’iga murojaat qilishimiz kerak bo’ladi ya’ni faylimizni append mode (qo’shish rejimi) da ochish uchun.
Yuqoridagi yorliqlar odatda fstream kutubxonasi bilan birga foydalaniladi va ularni bir necha turlari mavjud. Yuqorida aytib o’tganimizdek fstream kutubxonasi ikki kutubxonani umumlashtirilgan varianti hisoblanib kutubxonadan foydalanishda bunday yorliqlardan foydalaniladi.
ios::app
- faylni qo’shish rejimida ochishios::in
- faylni o’qish uchun ochishios::out
- faylga yozish uchun ochishios::trunc
- fayl mavjud bo’lganda yozishdan oldin uni kontentini tozalaydi.
Agar bir vaqtning o’zida faylga yozib ham undagi ma’lumotlarni o’qish uchun dastur yozmoqchi bo’lsak bu usul bizga qo’l keladi.
seekg() funksiyasi kursorning boshlang’ich pozitsiyasini belgilaydi. Agar biz seekg() funksiyasiga 6 qiymatini beradigan bo’lsak u holda dasturimiz faylning 6 elementidan boshlab o’qishni boshlaydi. Bizning holatimizda fayldagi “Salom,” so’zini tashlab ketadi va ekranga quidagicha natija chiqadi.
Mustaqil ravishda fstream kutubxonasining boshqa funksiyalari haqida o’rganishga harakat qilib ko’ring va foydalanuvchidan ma’lumot olib uni faylga yozish dasturini mashq yozishga harakat qilib ko’ring!