Fayllar bilan ishlash. Binar fayllar


Fayl ko'rsatkichi bilan ishlovchi funksiyalar



Yüklə 26,8 Kb.
səhifə3/11
tarix03.10.2023
ölçüsü26,8 Kb.
#151677
1   2   3   4   5   6   7   8   9   10   11
Fayllar bilan ishlash. Binar fayllar-www.hozir.org

Fayl ko'rsatkichi bilan ishlovchi funksiyalar

Fayldan ma'lumot o'qiganda yoki yozganda fayl ko'rsatkichi avtomat ravishda o'qilgan yoki yozilgan bayt miqdoricha siljiydi. Fayl ko'rsatkichi ning kelgan joyini aniqlash uchun ftell funksiyasi ishlariladi.



long int ftell ( FILE * stream );
Fayl ko'rsatkichini siljitish uchun fseekfunksiyasi ishlatiladi.


int fseek ( FILE * stream, long int offset, int whence);
Bu funksiya offset da ko'ratilgan bayt miqdoricha siljishni amalga oshiradi. whence o'zgaruvchisi quyidagi qiymatlarni qabul qilishi mumkin:

Agar whence = 1 bo'lsa (SEEK_CUR), offset musbat (o'ngga siljish) yoki manfiy (chapga siljish) bo'lishi mumkin.


Fayl ko'rsatkichini faylning boshiga o'rnatish uchun rewind funksiyasi ishlatiladi.


void rewind ( FILE * stream );
Bu amalni fayl ko'rsatkichini siljitish orqali ham amalga oshirish mumkin.


fseek (f, 0, SEEK_SET);
Agar faylda faqat butun sonlar yozilgan bo'lsa, uning к - elementi ga murojaat quyidagicha bo'ladi.


fseek (f, sizeof(int) * (к - 1), SEEK_SET);
fread (&n, sizeof(int), 1, f);

Fayl oxirini aniqlash uchun feof funksiyasi ishlatiladi.


int feof ( FILE * stream );
feof funksiyasi fayl ko'rsatkichi fayl oxirida bo'lsa, noldan farqli qiymat qaytaradi. Boshqa hollarda nol qaytaradi.

2 - misol. n natural soni berilgan. Elementlari n ta butun sondan iborat bo' Igan faylni hosil qiluvchi va ekranga chiqaruvchi dastur tuzilsin.
#include

#include


using namespace std;
int main() {
int n, k;
FILE *f;
f = fopen("binar", "wb+");
// binar faylni yozish va o'qish uchun ochish
if (f == NULL) {
cout « "Faylni hosil qilishda xato bo'ldi";
return 1; }
cout « "n="; cin » n;
for (int i = 0; i < n; i++) {
cin » k;

fwrite(&k, sizeof(к), 1, f) ; }


// fayl ko'rsatkichini fayl boshiga qo'yish

rewind(f);


while (fread(&k, sizeof(k), 1, f)) {
//fayl boshidan fayl ko'rsatkichi turgan o'ringacha bo'lgan baytlar
int bayt = ftell (f);
cout « к «" ftell (f)=" « bayt « endl; }
fclose (f);
return 0; }

Yüklə 26,8 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   10   11




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin