Ifstream, ofstream, va fstream


getline(input, state, '#')



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

getline(input, state, '#') charilishi (23-qator) orqali, shtat massiviga belgilar # belgisiga yoki fayl so`ngiga kelgunicha o`qiladi.
Ko`p qo`llaniluvchi, qolgan ikkita funksiyalar – get va put. Kiritish ob’yektida bitta belgini o`qish uchun get funksiyasini, bitta belgini yozish uchun esa, put funksiyasini chaqirishimiz mumkin.
get funksiyasining ikki xil versiyasi mavjud:
char get() // Belgi qaytarish
ifstream* get(char& ch) // Belgini ch ga o`qish
Birinchi versiya kiritish ob’yektidan belgini qaytaradi. Ikkinchi versiyasi belgili argumentning havolasini yuboradi, belgini kiritish ob’yektidan o`qiydi va uni ch ga yozadi. Shuningdek bu funksiya, kiritish (input) ob’yekti ishlatganda, unga havolani yuboradi.


  1. Faylga belgilarni yozish uchun qaysi funksiyadan foydalaniladi? Misollar bilan tushuntiring.

Kiritish ob’yektida bitta belgini o`qish uchun get funksiyasini, bitta belgini yozish uchun esa, put funksiyasini chaqirishimiz mumkin.


get funksiyasining ikki xil versiyasi mavjud:
char get() // Belgi qaytarish
ifstream* get(char& ch) // Belgini ch ga o`qish
Birinchi versiya kiritish ob’yektidan belgini qaytaradi. Ikkinchi versiyasi belgili argumentning havolasini yuboradi, belgini kiritish ob’yektidan o`qiydi va uni ch ga yozadi. Shuningdek bu funksiya, kiritish (input) ob’yekti ishlatganda, unga havolani yuboradi.
put funksiyasining sarlavha qismi quyidagicha:
void put(charch)
U ma’lum bir belgini chiqarish (output) ob’yektiga yozadi.
8.7-kodli ro`yxatda bu ikki funksiyadan foydalanishga doir misol berilgan. Dastur foydalanuvchidan faylni kiritishni so`raydi va uni yangi faylga nusxalaydi.
8.7-kodli ro`yxat. CopyFile.cpp
1 #include
2 #include
3 #include
4 using namespace std;
5
6 int main()
7 {
8 // Manbaa faylni kiritish
9 cout << " Manbaa fayl nomini kiriting: ";
10 string kirishFaylNomi;
11 cin >> kirishFaylNomi;
12
13 // Ko`zlangan faylni kiritish
14 cout << "Ko`zlangan fayl nomini kiriting: ";
15 string chiqishFaylNomi;
16 cin >> chiqishFaylNomi;
17
18 // Kirish va chiqish oqimlarini hosil qilish
19 ifstream input(kirishFaylNomi.c_str());
20 ofstream output(chiqishFaylNomi.c_str());
21
22 if(input.fail())
23 {
24 cout << kirishFaylNomi << " mavjud emas!"<< endl;
25 cout << "Dasturdan chiqish..."<< endl;
26 return 0;
27 }
28
29 char ch = input.get();
30 while(!input.eof()) // Agar fayl so`ngi bo`lmasa davom etish
31 {
32 output.put(ch);
33 ch = input.get(); // Keyingi belgini o`qish
34 }
35
36 input.close();
37 output.close();
38
39 cout << "\nNusxalandi!"<< endl;
40
41 return 0;
42 }
Natija:

Manbaa fayl nomini kiriting: c:\example\CopyFile.cpp
Ko`zlangan fayl nomini kiriting: c:\example\temp.txt
Nusxalandi!

Dastur foydalanuvchini mavjud manbaa fayl nomini (11qator) va ko`zlangan fayl nomini (16-qator) kiritishga undaydi. 19-qatorda kirishFaylNomi uchun kiritish ob’yekti – input yaratiladi va 20-qatorda chiqishFaylNomi uchun chiqarish ob’yekti – output hosil qilinadi. Fayl nomlari C-satrlar bo`lishi lozim. kirishFaylNomi.c_str() kirishFaylNomi dan C-satr qaytaradi.


22-27-qatorlar kiritish fayli mavjudligi yoki yo`qligini tekshiradi. 30-34-satrlar get funksiyasidan foydalangan paytda qaytadan belgilarni o`qiydi va put funksiyasidan foydalanib, belgilarni chiquvchi faylga yozadi.
Faraz qilaylik, 29-34-qatorlar quyidagi kod bilan almashtirilgan:
while(!input.eof()) // Agar fayl so`ngi bo`lmasa davom etish
{
output.put(input.get());
}

  1. Fayllarni yaratish rejimlari(mode) haqida ma’lumotlar keltiring.

Alternativ ravishda, kirish yoki chiqish oqimini hosil qilishda fstream sinfidan foydalanishimiz mumkin. Agar dasturimizda kirish va chiqish oqimlarining har ikkalasi uchun ham bitta oqim ob’yekti hosil qilish talab etilsa, bu talabga fstream sinfi mos tushadi. fstream faylni ochishda, C++ ga fayldan qanday foydalanishni aytib beruvchi faylni ochish shakli ni belgilab olishimiz zarur bo`ladi. 8.1-jadvalda turli xildagi fayl ko`rinishlarining ro`yxati keltirilgan.
1-jadval. Fayl ko`rinishlari

Ko`rinish

Tavsifi


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