Информатика
Oqimlarni ochish va yopish
Download 7.16 Mb. Pdf ko'rish
|
informatika Mominov
Oqimlarni ochish va yopish. Oqim ochilishi uchun, oldindan kiritilgan
FILE tipidagi struktura bilan bog`lash lozimdir. FILE strukturasi ta`rifi iostream.h bibleotekasida joylashgan. Bu strukturada buferga ko`rsatkich, o`qilayotgan pozitsiyaga ko`rsatkich va boshqa ma`lumotlar saqlanadi. Oqim ochilganda dasturda oqimga ko`rsatkich ya`ni FILE strukturali tipdagi ob`yektga ko`rsatkich qaytariladi. Bu ko`rsatkich quyidagicha e`lon qilinishi lozim. Masalan, FILE * fp FILE * Oqim ochish funksiyasi quyidagi ko`rinishga ega; Masalan, fp=fopen(―t.tnt‖, ―r‖) Oqim bilan bog`liq faylni quyidagi rejimlarda ochish mumkin: [w]- Yangi fayl o`qish uchun ochiladi. Agar fayl mavjud bo`lmasa, yangidan yaratiladi. [r] - Mavjud fayl faqat o`qish uchun ochiladi. 277 [a] - Fayl davom ettirish uchun ochiladi. [wt] - Fayl yozish va keyingi tahrirlash uchun ochiladi. Faylni ixtiyoriy joyidan o`qish yoki yozish mumkin. [rt]- fayl ixtiyoriy joyidan o`qish yoki yozish mumkin, lekin fayl oxiriga qo`shish mumkin emas. [at] - Fayl ixtiyoriy joyidan o`qish va yozish uchun ochiladi ―wt‖ rejimdan farqli fayl oxiriga ma`lumot qo`shish mumkin. Oqimdan o`qilgan quyidagi simvollar: CR(13)-naryat nomi qaytarish RF(10)-―yangi qator‖ boshiga o`tish bitta simvolga ―\n‖ (10) Agar fayl ixtiyoriy bo`lsa, binar rejimda ochiladi. Buning uchun rejimlar harfi qo`shiladi ―wb‖ yoki ―rtb‖. Ba`zi matnli rejim t harfi yordamida ko`rsatiladi masalan, ‖rt‖. Oqim ochilganda quyidagi xatolar kelib chiqishi mumkin: ko`rsatilgan fayl mavjud emas(o`qish rejimida); disk to`la yoki yozishdan himoyalangan va hokazo. Yana shuni aytish kerakki fopen() funksiyasi bajarilganda dinamik xotira ishlatiladi. Agar xotirada joy qolmagan bo`lsa ―not enough ‖ - xatosi kelib chiqadi.Ko`rsatilgan hollarda ko`rsatkich ~ NULL qiymatga ega bo`ladi. Bu xatolar haqidagi ma`lumotlarni ekranga chiqarish uchun perror () funksiyasi ishlatiladi. Bu funksiya iostream.h kutubxonasida saqlanuvchi prototipi quyidagi ko`rinishga ega.: void perror(court char * s); Diskda ochilgan fayllarni berkitish uchun quyidagi funksiyadan foydalaniladi. Int fellove( Fayllar bilan ishlashning bitli rejimi. Fayl bilan bitli almashish rejimi getc( ) va putc() funksiyalari yordamida tashkil etiladi. Bu funksiyalarga quyidagi shaklda murojaat etiladi: C=getc(fp); 278 Putc(c,fp); Bu yerda fp-ko`rsatkich, S-int tipidagi o`zgaruvchi. Masalan, klaviaturadan simvol kiritib faylga yozishni ko`ramiz. Matn oxirini `#` belgisi ko`rsatadi. Fayl nomi foydalanuvchidan so`raladi. Agar LF (qiymatlari 13 va 10) o`zgarmaslar yoziladi. Keyinchalik fayldan simvollarni o`qishda bu o`zgarmaslar satrlarni ajratishga imkon beradi. 107-listing. Output: #include #include int main() { FILE *fp; char c; const char CR='\015'; const char LF='\012'; char f_name[20]; puts("fayl nomini kiriting:\n"); gets(f_name); if((fp=fopen(f_name,"w")) ==NULL) { perror(f_name); return 1; } while ((c=getchar())!='#') { if (c=='\n') { putc(CR,fp); putc(LF,fp); } else putc (c,fp); } fclose (fp); return 0; } 108-listing. fayldan simvollarni o`qib ekranga chiqaradi Output: 279 #include #include int main() { FILE *fp; char c; char f_name [20]; puts(“fayl nomini kiriting:\n”); if((fp=f open (f name, “r”)) ==NULL) { perror(f name); return 1; } while ((c=getc(fp))!=eof) putchar(c); fclose (fp); return 0; } Download 7.16 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling