Ma’ruza-11: Fayllar bilan ishlash Reja


int fclose ( FILE * stream )


Download 48.57 Kb.
bet3/4
Sana18.06.2023
Hajmi48.57 Kb.
#1574014
1   2   3   4
Bog'liq
Ma\'ruza-11 (1)

int fclose ( FILE * stream );
Faylni yopishda xato sodir bo'lmasa, fclose funksiyasi nol qiymat qaytaradi. Xato sodir bo'lsa, EOF - fayl oxiri qaytariladi.
Faylga ma'lumot yozish va o'qish size_t fread ( void * ptr, size_t size, size_t n, FILE * stream ); fread funksiyasi, fayldan ptr ko'rsatkichi adresiga size xajmdagi ma'lumotdan n tani o'qishni amalga oshiradi. Agar o'qish muvoffaqiyatli amalga oshsa fread funksiyasi o'qilgan bloklar soni n ni qaytaradi. Aksholda nol qaytariladi size_t fwrite ( const void * ptr, size_t size, size_t n, FILE * stream );
fwrite funksiyasi, faylga ptr ko'rsatkichi adresidan boshlab size xajmdagi ma'lumotdan n tani yozishni amalga oshiradi.
Misol 1. fread va fwrite funksiyalarining qo'llanilishi
#include
#include
int main()
{
int n = 5;
double d = 10.77;
char s[20] = "tamird.uz";
FILE *f;
// binar faylni yozish uchun ochamiz
f = fopen("misol.txt", "wb");
fwrite(&n, sizeof(int), 1, f); // n sonini faylga yozish
fwrite(&d, sizeof(double), 1, f); // d sonini faylga yozish
// satrni faylga yozish
fwrite(s, sizeof(char), strlen(s) + 1, f);
fclose(f); // faylni yopish
n = 0; d = 0;
// binar faylni o'qish uchun ochamiz
f = fopen("misol.txt", "rb");
fread(&n, sizeof(int), 1, f); // n sonini fayldan o'qish
fread(&d, sizeof(double), 1, f); // d sonini fayldan o'qish
// satrni fayldan o'qish
fread(s, sizeof(char), strlen(s) + 1, f);
fclose(f); // faylni yopish
cout << n << endl;
cout << d << endl;
cout << s << endl;
system (“pause”);
return 0;
}

yuqoridagi misolda satrni yozish va o'qish uchun quyidagicha kod ishlatildi:
fwrite(s, sizeof(char), strlen(s) + 1, f);
fread (s, sizeof(char), strlen(s) + 1, f);
Buning kamchiligi s satridagi har bir belgi alohida - alohida faylga yozildi va o'qildi.
Bu masalani quyidagicha hal qilish mumkin edi:
fwrite(s, sizeof(s), 1, f);
fread (s, sizeof(s), 1, f);
Lekin bu usulning ham kamchiligi bor. Ya'ni s satri belgilar i soni massiv o'lchamidan
kam bo'lgan holda, keraksiz ma'lumotlarni saqlash va o'qish sodir bo'ladi.

Download 48.57 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling