C fayllarni o‘qish
Faylni o‘qish
Oldingi bobda fopen() funksiyasi ichida w va a rejimlaridan foydalanib faylga yozdik.
Fayldan o‘qish uchun r rejimidan foydalanishingiz mumkin:
Misol
FILE *fptr;
// Open a file in read mode
fptr = fopen("filename.txt", "r");
Bu filename.txt faylini o‘qish uchun ochadi.
C tilida faylni o‘qish biroz mehnat talab qiladi. Sabr qiling! Sizni qadam-baqadam yo‘naltirib boramiz.
Keyin fayl mazmunini saqlash uchun yetarlicha katta bo‘lgan string yaratishimiz kerak.
Masalan, 100 tagacha belgini saqlay oladigan string yarataylik:
Misol
FILE *fptr;
// Open a file in read mode
fptr = fopen("filename.txt", "r");
// Store the content of the file
char myString[100];
filename.txt faylining mazmunini o‘qish uchun fgets() funksiyasidan foydalanishimiz mumkin.
fgets() funksiyasi uchta parametr qabul qiladi:
Misol
fgets(myString, 100, fptr);
- Birinchi parametr fayl mazmuni qayerda saqlanishini belgilaydi — bu hozirgina yaratgan
myStringmassivimiz bo‘ladi. - Ikkinchi parametr o‘qiladigan ma’lumotning maksimal hajmini belgilaydi va u
myStringo‘lchamiga (100) mos kelishi kerak. - Uchinchi parametr faylni o‘qish uchun ishlatiladigan fayl ko‘rsatkichini talab qiladi (bizning misolimizda
fptr).
Endi stringni chiqarishimiz mumkin — u fayl mazmunini chiqaradi:
Misol
FILE *fptr;
// Open a file in read mode
fptr = fopen("filename.txt", "r");
// Store the content of the file
char myString[100];
// Read the content and store it inside myString
fgets(myString, 100, fptr);
// Print the file content
printf("%s", myString);
// Close the file
fclose(fptr);
Hello World!
Eslatma: fgets funksiyasi faylning faqat birinchi qatorini o‘qiydi. Esingizda bo‘lsa, filename.txt faylida ikki qator matn bor edi.
Faylning har bir qatorini o‘qish uchun while siklidan foydalanishingiz mumkin:
Misol
FILE *fptr;
// Open a file in read mode
fptr = fopen("filename.txt", "r");
// Store the content of the file
char myString[100];
// Read the content and print it
while(fgets(myString, 100, fptr)) {
printf("%s", myString);
}
// Close the file
fclose(fptr);
Hello World!
Hi everybody!
Yaxshi amaliyot
Agar mavjud bo‘lmagan faylni o‘qish uchun ochmoqchi bo‘lsangiz, fopen() funksiyasi NULL qaytaradi.
Maslahat: Yaxshi amaliyot sifatida NULL qiymatini tekshirish uchun if operatoridan foydalanib, (fayl mavjud bo‘lmaganda) uning o‘rniga biror matn chiqarishimiz mumkin:
Misol
FILE *fptr;
// Open a file in read mode
fptr = fopen("loremipsum.txt", "r");
// Print some text if the file does not exist
if(fptr == NULL) {
printf("Not able to open the file.");
}
// Close the file
fclose(fptr);
Agar fayl mavjud bo‘lmasa, quyidagi matn chiqariladi:
Not able to open the file.
Buni hisobga olib, yuqoridagi "faylni o‘qish" misolimizdan yana foydalansak, yanada barqaror kod yaratishimiz mumkin:
Misol
Agar fayl mavjud bo‘lsa, uning mazmunini o‘qing va chiqaring. Agar fayl mavjud bo‘lmasa, xabar chiqaring:
FILE *fptr;
// Open a file in read mode
fptr = fopen("filename.txt", "r");
// Store the content of the file
char myString[100];
// If the file exist
if(fptr != NULL) {
// Read the content and print it
while(fgets(myString, 100, fptr)) {
printf("%s", myString);
}
// If the file does not exist
} else {
printf("Not able to open the file.");
}
// Close the file
fclose(fptr);
Hello World!
Hi everybody!
Eslatma: NULL haqida NULL bobida batafsil bilib olasiz.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
