Ifstream, ofstream, va fstream


fstream kutubxonasidagi ifstream



Download 0,78 Mb.
bet3/6
Sana21.06.2022
Hajmi0,78 Mb.
#686905
1   2   3   4   5   6
Bog'liq
Dasturlash 2. 8-hafta topshiriq javoblari

fstream kutubxonasidagi ifstream sinfi aniqlanganidan so`ng, 2-qator ushbu kutubxona faylini chaqiradi.
8-qator natijalar.txt fayli uchun, ifstream sinfidan input ob’yektini yaratadi.
Oqimni chiqarish operatori (>>)dan foydalanib, xuddi cin ob’yektidagi kabi input ob’yektidan ham ma’lumot o`qitishimiz mumkin. 8.2-rasmda keltirilganidek, 15-19-qatorlarda satrli va sonli qiymatlar input ob’yektidan o`qiladi.
close() funksiyasi (23-qator) ob’yekt uchun ma’lumotlar oqimini yopish uchun qo`llanilgan. Kiritish faylini yopish majburiy emas, ammo mavjud resurslarning fayllar tomonidan egallab olmasliklari uchun uni yopish yaxshi amaliy ahamiyatga ega.
Kiritish oqimini quyidagi konstruktorda foydalanib ochishimiz mumkin:
ifstream input("natijalar.txt");

2-rasm. Kiritish oqimi fayldan ma’lumot o`qiydi.
Bu ko`rsatma satri quyidagi bilan ekvivalentdir:
ifstream input;
input.open("natijalar.txt");
Ogohlantirish. Ma’lumotni to`g`ri o`qish uchun, ma’lumot qanday yozilganligini aniq bilish lozim. Masalan, 8.2-kodli ro`yxatdagi dastur agar fayl double turidagi o`nli kasr ko`rinishidagi sonlardan iborat bo`lsa ishlamaydi.


  1. Faylning mavjud ekanligi qanday tekshiriladi? Faylning oxirini tekshirish qanday amalga oshiriladi?

Agar faylni o`qishda fayl mavjud bo`lmasa, dasturimiz ishga tushadi va noto`g`ri natija beradi. Xo`sh, bizning dasturimiz fayl bor yoki yo`qligini tekshira oladimi? Ha. Biz open funksiyasidan so`ng darxol fail( ) funksiyasini chaqirishimiz mumkin. Agar fail( ) funksiyasi true qiymat qaytarsa, u fayl mavjud emasligidan darak beradi.
1 // Faylni ochish
2 input.open("natijalar.txt");
3
4 if(input.fail())
5 {
6 cout << "File does not exist"<< endl;
7 cout << "Exit program"<< endl;
8
9 return 0;
10 }


  1. getline va get funksiyalarininig farqlari nimalardan iborat?

Oqimni kiritish operatori (>>)dan foydalangan holda ma’lumotlarni o`qishda bir muammoga duch kelamiz. Ma’lumotlar bo`sh joylar (oraliqlar) bilan ajratilgan. Agar satr qismlari bo`sh joylar bilan ajratilgan bo`lsa nima bo`ladi? O`tgan semestrda, tarkibida bo`sh jo`ylari mavjud bo`lgan satrlarni getline funksiyasi orqali o`qitishni o`rgangan edik. Biz aynan o`sha funksiyadan fayldagi satrli ma’lumotlarni o`qitishda ham foydalanishimiz mumkin. getline funksiyasi sintaksisiga qayta murojaat qilamiz:
getline(ifstream& input, int string s, char delimitChar)
Funksiya belgilarni o`qishdan chegaraviy belgi yoki tasodifiy ravishda fayl so`ngi kelganda to`xtaydi. Agar chegaraviy belgiga duch kelinsa, u o`qiladi, ammo massivga yozilmaydi. Uchinchi argument – delimitChar jimlik qoidasiga ko`ra (‘\n’) qiymatga ega. getline funksiya iostream - kutubxona faylida aniqlangan.
Faraz qilaylik, panjara (#) belgisi orqali ajratilgan shtatlar nomlaridan iborat bo`lgan, shtat.txt deb nomlangan fayl yaratilgan. Fayl tarkibi quyidagi diagrammada tasvirlangan:

8.6-kodli ro`yxatda fayldan shtatlarni o`quvchi dastur berilgan.
8.6-kodli ro`yxat. ReadCity.cpp
1 #include
2 #include
3 #include
4 using namespace std;
5
6 int main()
7 {
8 // Faylni ochish
9 ifstream input("shtat.txt");
10
11 if(input.fail())
12 {
13 cout << "Fayl mavjud emas!"<< endl;
14 cout << "Dasturdan chiqish"<< endl;
15 return 0;
16 }
17
18 // Ma’lumotlarni o`qish
19 string city;
20
21 while(!input.eof()) // Agar fayl so`ngi bo`lmasa davom etish
22 {
23 getline(input, city, '#');
24 cout << city << endl;
25 }
26
27 input.close();
28
29 cout << "Bajarildi!"<< endl;
30
31 return 0;
32 }
Natija:

New York
New Mexico
Texas
Indiana
Bajarildi!


Download 0,78 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish