|
Dasturlash 1 swd 1316 matnli fayllar bilan ishlash operatorlari 11
|
bet | 4/4 | Sana | 02.12.2023 | Hajmi | 5,89 Mb. | | #110000 |
Bog'liq hTxjx4etD58fbBlkpvM1vzFvHNhiopHM7SWRHK3JFayl ochishdagi hatoliklar - main()
- {
- FILE *f;
- int n, x, S = 0;
- f = fopen ( "input.txt", "r" );
- if ( f == NULL ) {
- printf(“Fayl topilmadi.");
- getch(); return 0;
- }
- while ( 1 ) {
- n = fscanf ( f, "%d", &x );
- if ( n != 1 ) break;
- S += x;
- }
- fclose ( f );
- f = fopen ( "output.txt", "w" );
- fprintf ( f, "S = %d", S );
- fclose ( f ); }
- Ma’lumotlarni o’qish sikli: n 1 da chiqish.
Ma’lumotlarni massivga yozish - int ReadArray ( int A[], char fName[], int MAX )
- {
- int N = 0, k;
- FILE *f;
- f = fopen ( fName, "r" );
- while ( 1 ) {
- k = fscanf ( f, "%d", &A[N]);
- if ( k != 1 ) break;
- N ++;
- if ( N >= MAX ) break;
- }
- fclose(f);
- return N; }
- Fayldan massivni o’quvchi funksiya massiv elementlar sonini chiqaradi (kamida MAX):
- Agarda o’qish mumkin bo’lmasa sikldan chiqish
Amaliy masala: - input.txt faylida matn berilgan. Satrda “anaqa” so’zi ko’p ishlatilgan. Matnni bu so’zdan xalos eting va output.txt faylga yozing.
Binar va fizik fayllar fopen() - funksiyasi - Faylni ochishda xatolik sodir bo’lsa, fopen funksiyasi NULL qiymat qaytaradi.
- fopen(“fayl_nomi”,”ochish_turi”);
-
- Faylni yozishda xatolik sodir bo’lmasa, fclose() funksiyasi nol qiymat qaytaradi. Xato sodir bo’lsa, EOF – fayl ohiri qaytariladi.
- fclose(fayl_o’zgaruvchisi);
Binar faylni ochish va yopish - fp = fopen ( "input.dat", "rb" );
- "rb" = read binary (oqish)
- "wb" = write binary (yozish)
- "ab" = append binary (qo’sish)
- if ( fp == NULL ) { printf(“fayl ochilmadi.");
- }
fprintf() va fscanf() funksiyasi - 1- etap. Faylni ochish (uni ishga tayyorlash va uni
- faollashtirish)
- f = fopen(“bir.txt", “rb");
- 2- etap: fayl bilan ishlash
- fscanf ( f, "%d", &n ); // n qiymatini kiritish
- fprintf( f, "n=%d", n ); // n qiymatini yozish
- ("rb", англ. read) faqat o’qish uchun
- f = fopen(“bir.txt", "wb");
- ("wb", англ. write) faqat yozish uchun
- f = fopen(“bir.txt", "ab");
- ("ab", англ. append) faqat yangilash uchun
- O’zgaruvchi tipi
- «faylga ko’rsatkich»: FILE *f;
fscanf() va fprintf() misol Bloklar bo’yicha yozish - int A[100];
- n = fwrite( A, sizeof(int), 100, fp );
- Xotiradagi soha manzili(«qayerdan»):
- A &A[0]
- Butun tipli o’zgaruvchi o’lchami
- Massivni alohida elementlarini yozish
- int A[100];
- n = fwrite( A+5, sizeof(int), 2, fp );
- 2 ta butun son o’qiladi:
- A[5], A[6]
Massiv elementlarini binar faylga yozish Bloklar bo’yicha o’qish - int A[100];
- n = fwrite( A, sizeof(int), 100, fp );
- Xotiradagi soha manzili(«qayerdan»):
- A &A[0]
- Butun tipli o’zgaruvchi o’lchami
- Massivni alohida elementlarini yozish
- int A[100];
- n = fread ( A+5, sizeof(int), 2, fp );
- 2 ta butun son o’qiladi:
- A[5], A[6]
Misol: Matrisa bilan ishlash - Xotirada saqlash: satr bo’yicha
- int A[3][3];
- FILE *fp = fopen("output.dat", "wb");
- ... // matrisani to’ldirish
- n = fwrite( A, sizeof(int), 9, fp );
Matritsalar bilan ishlashga misol: Faylni ochishda xatolik Fayl ko’rsatgichi bilan ishlash funksiyalari - Fayl ko’rsatgichini kelgan joyini aniqlash uchun ftell funksiyasi ishlatiladi.
- long int ftell(FILE * stream);
- Fayl ko’rsatgichini siljitish uchun fseek funksiyasi ishlatiladi.
- int fseek (FILE * stream, long int offset, int whence);
Xulosa - Matnli fayllarda ma’lumotlarni saqlash va ularni dasturlash tillari yordamida qayta ishlash - katta hajmdagi ma’lumotlardan samarali va tez foydalanish imkoniyatlarini yaratadi.
-
- C++ da BINAR fayllardan kompilyatsiya jarayonida operativ xotira hajmini juda katta hajmdagi dinamik ma’lumotlar bilan band qilishni oldini olish uchun qo’llaniladi.
- MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
- Mallayev Oybek
- Usmonqulovich
- “Informatika asoslari” kafedrasi dotsenti
- E’TIBORINGIZ UCHUN RAHMAT!
|
| |