freadfunksiyasi, fayldan ptr ko'rsatkichi adresiga size xajmdagi ma'lumotdan n tani o'qishni amalgaoshiradi.
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.
1 - Misol. fread va fwrite funksiyalarining qo'llanilishi
#include
#include
using namespace std;
int main() {
int n = 5;
double d = 10.77;
char s [20] = "dastur.uz";
FILE *f;
f = fopen("my_file.dat", "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);
n = 0; d = 0;
// binar faylni o'qish uchun ochamiz
f = fopen("my_file.dat", "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;
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 belgilari soni massiv o'lchamidan kam bo'lgan holda, keraksiz ma'lumotlarni saqlash va o'qish sodir bo'ladi.