Darsliklar C Fayllar

C C Fayllar

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 ishlashdiskdagi faylni ochish, o’qish, yozish va yopish jarayoni. C’da bu FILE ko’rsatkichi va fopen, fprintf, fscanf, fclose funksiyalari 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.