Fayllar bilan ishlashning bitli rejimi. Fayl bilan bitli almashish rejimida
getc( ) va putc( ) funksiyalaridan foydalaniladi. Ushbu funksiyalarga quyidagi
shaklda murojat qilinadi:
c=getc(fp);
putc(c,fp);
Bu yerda fp-ko‘rsatkich, c-int tipidagi o‘zgaruvchi.
Yuqorida keltirilgan fikrlarni to‘g‘riligini asoslash uchun quyidagi misollarni
ko‘rib chiqamiz.
1-misol. Klaviaturadan belgi kiritib, faylga yozish dasturi. Bunda matn oxirini
‘#’ belgisi ko‘rsatadi. Fayl nomi foydalanuvchidan so‘raladi. Agar
tugmasi bosilsa, faylga A va B (qiymatlari 13 va 10) konstantalar yoziladi.
Keyinchalik fayldan belgilarni o‘qishda, ushbu konstantalar satrlarni ajratishga
imkon beradi. Mazkur misolning dastur kodi quyidagicha:
#include
int main()
{
FILE *fayl;
char c;
const char A=‘\015’;
const char B=‘\012’;
char ism [20];
puts("fayl nomini kiriting:\n");
gets(ism);
if((fayl=fopen(ism, "w")) == NULL)
{ perror(ism);
return 1;
}
while ((c=getchar())!=‘#’);
if (c==‘\n’)
{ putc(A,fayl);
putc(B,fayl);
}
else putc (c,fayl);
fclose(fayl);
return 0;
}
2-misol. Fayldan belgilarni o‘qib ekranga chiqarish dasturi. Ushbu misolning
dastur kodi quyidagicha yoziladi:
#include
#include
#include
int main()
{
FILE *fp;
char s[20];
char fname[20];
int n;
puts("fayl nomini kiriting:\n");
gets(fname);
if((fp = fopen(fname, "r")) == NULL)
{
perror(fname);
getch();
return 0;
}
for(n = 1; n<=5;n++) {
fgets(s,256,fp);
puts(s);
}
fclose(fp);
getch();
}
Do'stlaringiz bilan baham: |