Fayllar va oqimlar, diskdagi faylar bilan ishlash.
C++ dasturlash tilida fayllar bilan ishlovchi maxsus funksiyalar.
Fayllar va oqimlar
Fayllar va oqimlar
C++ dasturlash tilida standart oqimlariga fayllar bilan ishlash oqilari ham kiradi. Fayllar bilan ishlash oqimlari quyidagilardan iborat:
ifstream
Faylli kiritish oqimlari
ofstream
Faylli chiqarish oqimlari
fstream
Ikkiga yo‘naltirilgan faylli oqimlar
Faylli oqimlar bilan ishlash uchun fstream faylli dasturga sarlavha fayl sifatida chaqirilib olinadi.
Faylli oqimlar bilan ishlash uchun fstream faylli dasturga sarlavha fayl sifatida chaqirilib olinadi.
Faylni o‘qish va faylga yozish uchun ifstream va ofstream strukturalaridan foydalaniladi. Masalan, klaviatura yordamida kiritilgan ma’lumotni faylga yozib qo‘yish uchun quyidagicha dastur yaratiladi.
Yuqoridagi dasturimizda ishlatilgan close() uslubi ochilgan faylni yopish uchun xizmat qiladi. Bu uslub fayllarga yozish va fayllardan o‘qish uchun ham birday ishlatiladi.
Fayllarni o‘qishda faylni oxirini aniqlash uchun eof() uslubidan foydalaniladi.
Bu uslub faylni oxiriga borgan bo‘lsa, rost qiymat qabul qiladi, agar faylning oxiriga bormagan bo‘lsa, yolg‘on qiymat qabul qiladi. Masalan, berilgan fayldagi ma’lumotlarni ekranga chiqarish uchun quyidagicha dastur yaratiladi. Bu dasturni yaratishda sikl operatorlaridan foydalaniladi.
Sikl operatorlaridan while() operatoridan foydalanish maqsadga muvofiq bo‘ladi. Chunki bu sikl operatori faylda ma’lumot bo‘lmasa takrorlanishni amalga oshirmaydi. Sikl operatoridan foydalanilayotganda shartdan oldin inkor amalini joylashtirish dasturni yanada takomillashtiradi
Fayllar bilan ishlash funksiyalari
Fayllar bilan ishlash funksiyalari
Fayllar bilan ishlashning yana bir usuli mavjud. Bu usulda fayllar bilan ishlashda oqimli kiritish va chiqarishdan foydalanilmasdan asosan funksiyalardan foydalaniladi. Bu usul funksiyalari bilan tanishib chiqamiz:
fopen() – fayl ochish
fopen() – fayl ochish
fprintf() – faylga ma’lumotni formatlab yozish
fscanf() – fayldagi ma’lumotni formatlab o‘qish
fgets() – fayldagi belgilarni o‘qish
fputs() – faylga belgilarni yozish
ferror() – fayl bilan ishlashdagi xatolikni aniqlash
feof() – fayl oxirini aniqlash
fclose() – ochilgan faylni yopish.
To‘g‘ri murojaatli fayllarni kiritish/chiqarish
To‘g‘ri murojaatli fayllarni kiritish/chiqarish
Oqimlar yordamida fayllarni kiritish va chiqarishni boshqarish uchun ularni belgilab olishda yoki yaratishada to‘g‘ri murojaat qilinishi lozim bo‘ladi. To‘g‘ri murojaat qilish uchun quyidagi buyruqlar mavjud.
in
Oqimini o‘qish uchun ochish (odatda ifstream)
out
Oqimini yozish uchun ochish (odatda ofstream)
trunc
Oqimini tozalash uchun ochish (odatda ofstream)
app
Oqimini fayl oxiriga yozish uchun ochish
ate
Oqimini o‘qish uchun yoki fayl oxiriga yozish uchun ochish
binary
Oqimini ikkilik rejimida ochish (odatda matnli)
Matnlar fayllar
Matnlar fayllar
Matnli fayllarni yaratishda oldingi mavzudagi fayllrani oqimlar usuli bilan yaratish va ularni o‘qishda foydalanilgan funksiyalar va strukturalardan foydalaniladi.
Matnli fayllar bilan ishlash oldingi rejada ko‘rib o‘tilgan misolimizda yaqqol ko‘rinib turibdi. Chunki, misolda kiritilgan so‘z berilgan fayllarga hech qanday o‘zgarishsiz yozilgan.
Talabalarning familiyasini faylga yozuvchi dastur yaratamiz. Agar 0 soni kiritsak faylga yozish to‘htatilsin.
Binar fallar
Binar fallar
Binar fayllar bilan ishlashdan maqsad shundan iboratki, faylning ichidagi ma’lumotni kodlash. Binar fayl nomidan ma’lumki unga yozilgan ma’lumotlar ikkilik tartibida yoziladi. Bunda faylning matnli ma’lumotlaridan tashqari barcha ma’lumotlari kodlanadi.