Fayllar bilan ishlash — ma’lumotni dastur yopilgandan keyin ham saqlab qolish usuli. O’zgaruvchilar dastur tugashi bilan yo’qoladi, fayldagi ma’lumot esa diskda qoladi. Hisobotlar, sozlamalar, loglar — barchasi fayllarda saqlanadi. C’da bu vazifa uchun stdio.h dagi fayl funksiyalari ishlatiladi.
Fayl bilan ishlash — diskdagi faylni ochish, o’qish, yozish va yopish jarayoni. C’da bu
FILEko’rsatkichi vafopen,fprintf,fscanf,fclosefunksiyalari orqali amalga oshiriladi.
Faylga yozish
Fayl fopen bilan ochiladi, fprintf bilan yoziladi va fclose bilan yopiladi:
#include <stdio.h>
int main(void) {
FILE *fayl = fopen("hisobot.txt", "w");
fprintf(fayl, "UzbekDevs hisoboti\n");
fprintf(fayl, "Ball: 95\n");
fclose(fayl);
printf("Fayl yozildi\n");
return 0;
}
Fayl yozildi
fopen("hisobot.txt", "w") faylni yozish rejimida ochdi ("w" — write). fprintf printf kabi, ammo faylga yozadi. fclose esa faylni yopib, ma’lumotni saqlaydi.
Ochish rejimlari
fopen turli rejimlarda fayl ochadi. Asosiylarini jadvalda ko’ramiz:
| Rejim | Ma’nosi |
|---|---|
"r" |
o’qish (fayl mavjud bo’lishi kerak) |
"w" |
yozish (eskisini o’chiradi) |
"a" |
oxiriga qo’shish |
"r+" |
o’qish va yozish |
Fayldan o’qish
Faylni "r" rejimida ochib, fgets bilan qatorma-qator o’qiymiz:
#include <stdio.h>
int main(void) {
FILE *fayl = fopen("hisobot.txt", "r");
char qator[100];
while (fgets(qator, 100, fayl) != NULL) {
printf("%s", qator);
}
fclose(fayl);
return 0;
}
UzbekDevs hisoboti
Ball: 95
fgets(qator, 100, fayl) faylni qatorma-qator o’qiydi va fayl tugaganda NULL qaytaradi. Bu — butun faylni xavfsiz o’qishning eng keng tarqalgan naqshi.
Faylni tekshirish
Mavjud bo’lmagan faylni ochishga urinsangiz, fopen NULL qaytaradi. Buni tekshirish — professional yondashuv:
#include <stdio.h>
int main(void) {
FILE *fayl = fopen("yoq.txt", "r");
if (fayl == NULL) {
printf("Xato: fayl topilmadi\n");
return 1;
}
fclose(fayl);
return 0;
}
Xato: fayl topilmadi
if (fayl == NULL) fayl ochilmaganini tekshiradi. Bu tekshiruv dasturni kutilmagan xatolardan himoya qiladi. Faylni yopishni (fclose) doim unutmang.
Xulosa
Bu bo’limda fopen bilan fayl ochish, fprintf/fgets bilan yozish va o’qish, ochish rejimlari va faylni tekshirishni ko’rib chiqdik. Fayllar — ma’lumotni doimiy saqlashning asosi. Keyingi darsda xatolarni boshqarishga (try-except) o’tamiz.