C++ dasturlash tilida fayllar bilan ishlash


Fayllar bilan formatli almashinuv


Download 255.77 Kb.
Pdf ko'rish
bet5/8
Sana05.10.2023
Hajmi255.77 Kb.
#1692541
1   2   3   4   5   6   7   8
Bog'liq
C dasturlash tilida fayllar bilan ishlash (1)

Fayllar bilan formatli almashinuv. Ba’zi hollarda ma’lumotni to‘g‘ridan-
to‘g‘ri ekranga chiqarish uchun qulay shaklda faylda saqlash talab etiladi. Ushbu 
holda faylga formatli kiritish va chiqarish funksiyalaridan foydalanish mumkin. 
Mazkur funksiyalar quyidagi ko‘rinishda yoziladi:
int fprint(oqimga ko‘rsatkich, formatlash-qatori, o‘zgaruvchilar ro‘yhati);
int fcin>>(oqimga ko‘rsatkich, formatlash-qatori, o‘zgaruvchilar ro‘yhati); 
Keltirilgan funksiyalarga oid quyidagi misolni ko‘rib chiqamiz. 
4-misol. Yangi fayl yaratuvchi va bu faylga 1 dan 100 gacha bo‘lgan sonlarni 
yozish dasturi.
Ushbu misolning dastur kodi quyidagicha yoziladi: 
#include 
int main() {
FILE *fp;
int n;
char fname[20];
puts("fayl nomini kiriting:\n");
gets(fname);
if((fp = fopen(fname, "w")) == NULL)
{
perror(fname);
return 0; }
for(n = 1; n<=100; n++) fprintf(fp,"%d ",n);
fclose(fp);

Faylga ixtiyoriy murojaat qilish. Yuqorida ko‘rib chiqilgan funksiyalar faqat 
faylga ketma-ket yozish yoki o‘qishga imkon beradi. Fayldan o‘qib faylga 
yozishlar doim joriy o‘rinda amalga oshiriladi. Boshlang‘ich o‘rin fayl ochilganda 
aniqlanadi. Faylni "r" va "w" rejimida ochilganda joriy tartib ko‘rsatgichi faylning 


birligi baytini ko‘rsatadi, "a" rejimida ochilganda, oshish baytini ko‘rsatadi. Har bir 
kiritish-chiqarish amali bajarilganda, ko‘rsatgich o‘qilgan baytlar soniga qarab 
yangi o‘ringa ko‘chadi. Faylning ixtiyoriy baytiga murojat qilish uchun fseek() 
funksiyasidan foydalanish lozim. Bu funksiya quyidagicha yoziladi: 
int fseek (faylga ko‘rsatgich, oraliq, hisobot boshi)
oraliq mantiqiy tipdagi o‘zgaruvchi yoki ifoda bilan beriladi. Hisobot boshi 
quyidagi konstantalardan biri bilan aniqlanadi: 
SEEK_ SET (qiymati 0 )-fayl boshi; 
SEEK_CUR (qiymati 1)-o‘qilayotgan tartib; 
SEEK_ END (qiymati 2)-fayl ochish; 
fseek () funksiyasi 0 qiymat qabul qiladi, agar faylda ko‘chish bajarilgan 
bo‘lsa, aksincha noldan farqli songa teng bo‘ladi.
Ixtiyoriy o‘rindan fayl boshiga o‘tish uchun quyidagilardan foydalaniladi: 
fseek (fp,ol,seek-set). 
Ixtiyoriy o‘rindan fayl oxiriga o‘tish uchun quyidagidan foydalaniladi: 
fseek (fp,ol,seek-end). 
Joriy o‘rindan bir bayt oldinga yoki orqaga ko‘chish uchun fseek (jp,-1L,seek-
cur) elementidan foydalaniladi. 
Fseek funksiyasidan tashqari C++ dastrulash tili kutubxonasida ko‘rsatkichli 
o‘rinlar bilan bog‘lik quyidagi funksiyalar mavjud: 
long ftell (FILE*)-faylda ko‘rsatkichning joriy tartibini aniqlash; 
void rewind (FILE*)-joriy o‘rin ko‘rsatkichini fayl boshiga keltirish.

Download 255.77 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8




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