ifstream ; Ifstream kalit so‘zi orqali fayl e’lon qilinganda, e’lon qilingan fayl ustida faqatgina ma’lumot o‘qish amali bajariladi. Ya’ni dastur tarkibiga qabul qilinadigan qiymatlar biror bir fayldan o‘qish jarayonini amalga oshirish uchun fayl o‘qish bo‘yicha e’lon qilinadi.
Fayllarni e’lon qilish
Fayllarga murojat qilib bo‘lgandan so‘ng, albatta, fayllar yopilish kerak. C++ dasturlash tilida fayllarni yopishning umumiy ko‘rinishi quyidagicha bo‘ladi:
.close();
Fayllarni yopish uchun, albatta, mantiqiy nomi dan so‘ng .close() kalit so‘zi yoziladi.
Fayllarni e’lon qilish
Ikkita f va g o‘zgaruvchilar fayllarning mantiqiy nomi sifatida qabul qilinib, ularni mos ravishda yozish va o‘qish bo‘yicha quyidagi ko‘rinishda e’lon qilinadi:
#include #include using namespace std;
int main()
{
ofstream f; // faylni yozish uchun ochish
ifstream g; // faylni o‘qish uchun ochish
f.close(); // f fayl yopildi
g.close(); // g fayl yopildi
return 0;
}
Fayllarga murojat qilish
C++ dasturlash tilida fayllar bilan ishlashda birinchi o‘rinda dasturingiz va foydalaniladigan fayllarni, albatta, bitta papkaga saqalab oling. Dasturlash tillarida fayllarga murojat qilish uchun oldin uning mantiqiy va fizik nomlarini bog’lash kerak. C++ dasturlash tilida fayllarning mantiqiy nomi bog’langandan so‘ng faylga uning mantiqiy nomi bilan murojat qilinadi. C++ dasturlash tilida fayllarni mantiqiy nomini fizik nomiga bog’lashning umumiy ko‘rinishi quyidagicha bo‘ladi:
.open("");
Fayllarga murojat qilish
Faylning mantiqiy nomi fizik nomiga bog’lanish vaqtida fizik nomi adresi bilan to‘liq yozilish kerak aks holda fayl bog’lanmaydi. Agar yaratilgan dastur turgan papkada fayl yaratilgan bo‘lsa, adresi ko‘rsatilmasdan uning nomi ko‘rsatilishi kifoya.
Misol: output.txt va input.txt fayllarini yarating va ularga mos ravishda f va g mantiqiy nomlari bilan bog’lang.
#include #include using namespace std;
int main()
{
ofstream f;
f.open("output.txt");
ifstream g;
g.open("input.txt");
return 0;
}
Fayllar ustida amallar bajarish
C++ dasturlash tillari tarkibida fayllar ustida amallar bajarish uchun yuqoridagi holatlar bo‘yicha oldin e’lon qilinishi va mantiqiy nomi bilan bog’lashi shart. Fayllar ustida quyidagi amallarni bajarishimiz mumkin:
1)Faylga ma’lumot yozish;
2)Fayldan ma’lumot o‘qish;
3)Fayl tarkibidagi ma’lumotlarni o‘chirish.
C++ dasturlash tilida fayllarga ma’lumot yozishning ikki turi mavjud, birinchi turi bo‘yicha ma’lumot yozilganda eski qiymatlar uchirilib ustiga yangi ma’lumot yoziladi. Ikkinchi tur bo‘yicha faylga ma’lumot yozilsa, unda ma’lumot faylning oxiriga borib yozishni bajaradi. Ikki tur bo‘yicha ham faylga ma’lumot o‘zgaruvchi yordamida yoziladi.
Fayllar ustida amallar bajarish
C++ dasturlash tilida birinchi tur bo‘yicha faylga ma’lumot yozish uchun ofstream ; .open("fizik nom"); buyruqlari oldin yozilishi shart undan so‘ng uning tarkibiga ma’lumot yozish mumkin.
C++ dasturlash tilida faylga birinchi tur bo‘yicha ma’lumot yozishning umumiy ko‘rinishi quyidagicha bo‘ladi:
<< ;
Fayl tarkibiga ma’lumot yozilganda uning oldingi ma’lumotlari o‘chirilib, yangi ma’lumotlar yoziladi. Faylga birinchi tur bo‘yicha ma’lumot yozish tartibi xuddi cout funksiyasi kabi bajariladi.
Misol: n ta elementli massiv berilgan massiv elementlari ichidan toqlarini f faylga juftlarini g faylga yozing.
#include #include using namespace std;
int main()
{ int n; int a[90];
cout<<"n="; cin>>n;
cout<<"massiv elementlarini kiriting \n";
for(int i=0;i>a[i];
ofstream f;
f.open("toq.txt");
ofstream g;
g.open("juft.txt");
for(int i=0;iif(a[i]%2==1) f<else g<f.close();
g.close();
return 0;
}
Kiritishga ma’lumot
n=5
massiv elementlarini kiriting
5 6 9 8 1
Dastur natijasi
f faylda
5 9 1
g faylda
8
Yuqoridagi dasturda massiv elementlarining toqlarini f fayl orqali toq.txt faylga, juft elementlarini esa g o‘zgaruvchi orqali juft.txt faylga joylashtirdi.
C++ dasturlash tilida ikkinchi tur bo‘yicha faylga ma’lumot yozish uchun ofstream ; .open ("fizik nom", ios::app); buyruqlari oldin yozilishi shart, undan so‘ng uning tarkibiga ma’lumot yozish mumkin. Ikkinchi tur bo‘yicha ma’lumot yozish degani fayl oxiriga ma’lumot yozish tushuniladi. Faylning oxiriga ma’lumot yozish uchun e’lon qilish birinchi turdek e’lon qilinadi faqatgina ios::app xossasi qo’shimcha sifatida qo‘shiladi. C++ dasturlash tilida faylga ikkinchi tur bo‘yicha ma’lumot yozishning umumiy ko‘rinishi quyidagicha bo‘ladi:
<< ;
Fayl tarkibiga ikkinchi tur bo‘yicha ma’lumot yozish uchun .open ("fizik nom", ios::app); buyrug’i orqali e’lon qilinadi. Ikkinchi tur bo‘yicha yozish uchun e’lon qilinganda kursor fayl oxiriga boradi va yangi yozilgan ma’lumot fayl oxiriga borib yoziladi.
Misol: To‘rtta 1 2 3 4 elementlari mavjud bo‘lgan f fayl oxiriga 10 dan 20 gacha bo‘lgan sonlarni yozing
#include #include using namespace std;
int main()
{ ofstream f;
f.open("tt.txt", ios::app);
for(int i=10;i<=20;i++)
f<<" "<f.close();
return 0;
}
Dastur natijasi