Mavzu: C++fayillari bilan ishlash Bajardi: Ruzimurodov q tekshirdi: Sadinov A. Z reja



Download 47,54 Kb.
bet4/4
Sana04.06.2022
Hajmi47,54 Kb.
#635487
1   2   3   4
Bog'liq
2 5422437683404216303


#include
#include
#include

int main ()
{
ifstream oqish; // fayldan o'qish oqimini hosil qilish
string satr;

oqish.open("namuna.txt");
// faylni ochishda xatolik sodir bo'lsa
if (!oqish.is_open())
{
cout << "Faylni ochishda xatolik sodir bo'ldi." << endl;
exit(1); // dasturni tugatish
}

while (!oqish.eof())
{
// fayldan o'qish
getline(oqish, satr);
// ekranga chiqarish
cout << satr << endl;
}

// namuna.txt fayli bilan oqish oqimi aloqasini uzish
oqish.close();
system (“pause”);
return 0;
}

istream sinfi funksiyalari
istream& seekg ( streampos pos );
istream& seekg ( streamoff off, ios_base::seekdir dir );;
oqish oqimi ko'rsatkichini o'rnatish (siljit ish).
pos - oqim buferining yangi pozitsiyasi.
dir parametri quyidagilardan birini qabul qilishi mumkin:
Qiymat Izoh
ios::beg oqimning boshlanishi
ios::cur oqimning joriy xolari
ios::end oqim oxiri
long tellg();
o'qish oqimining joriy xolatini (pozitsiyasi) aniqlash.
ostream sinfi funksiyalari
ostream& seekp ( streampos pos );
ostream& seekp ( streamoff off, ios_base::seekdir dir );
yozish oqimi o'rnini (pozitsiyasini) o'rnatish.
pos - oqim buferining yangi pozitsiyasi
dir parametri beg, cur, end qiymatlaridan birini qabul qilishi mumkin.
long tellp() - yozish oqimining kelgan joyini aniqlash.
Fayldan nusxa olish



C ++ chiqishi bufer bo'lishi mumkin. Bu shuni anglatadiki, fayl oqimiga chiqarilgan hamma narsani darhol diskka (ma'lum bir faylga) yozib bo'lmaydi. Bu, birinchi navbatda, ishlash sabablari uchun amalga oshiriladi. Bufer ma'lumotlar diskka yozilsa, u chaqiriladi buferni yuvish... Buferni tozalashning bir usuli faylni yopishdir. Bunday holda, buferning butun tarkibi diskka ko'chiriladi va keyin fayl yopiladi. Chiqishni buferlash odatda muammo emas, lekin ma'lum sharoitlarda ehtiyotkor yangi boshlanuvchilar uchun muammo tug'dirishi mumkin. Misol uchun, ma'lumotlar buferda saqlangan va dastur uning bajarilishini muddatidan oldin to'xtatganda (yoki nosozlik natijasida yoki qo'ng'iroq qilish orqali). Bunday hollarda fayl kiritish-chiqarish sinfining destruktorlari bajarilmaydi, fayllar hech qachon yopilmaydi, buferlar tozalanmaydi va bizning ma'lumotlarimiz abadiy yo'qoladi. Shuning uchun exit () ni chaqirishdan oldin barcha ochiq fayllarni aniq yopish yaxshi fikrdir. Bundan tashqari, bufer yordamida qo'lda tozalanishi mumkin ostream :: flush () usuli yoki yuborish orqali std :: yuvish chiqish oqimiga. Ushbu usullarning har biri dastur ishdan chiqqan taqdirda bufer tarkibi darhol diskka yozilishini ta'minlash uchun foydali bo'lishi mumkin. Qiziqarli nuance: std dan beri :: endl; shuningdek, chiqish oqimini tozalaydi, uning ortiqcha ishlatilishi (buferni keraksiz yuvishga olib keladi) dasturning ishlashiga ta'sir qilishi mumkin (chunki ba'zi hollarda buferni yuvish qimmat operatsiya bo'lishi mumkin). Shu sababli, o'z kodining ishlashi haqida qayg'uradigan dasturchilar ko'pincha std :: endl o'rniga \ n dan foydalanadilar, buferni keraksiz tozalashning oldini olish uchun chiqish oqimiga yangi qator qo'shishadi. Faylni ochish rejimlari Mavjud faylga ma'lumotlarni yozishga harakat qilsak nima bo'ladi? Yuqoridagi dasturni qayta ishga tushirish (birinchi dastur) dastur qayta ishga tushirilganda asl fayl butunlay qayta yozilganligini ko'rsatadi. Agar fayl oxiriga ma'lumotlarni qo'shishimiz kerak bo'lsa-chi? Ma'lum bo'lishicha, fayl oqimi dasturchiga dasturchiga faylni qanday ochishni aytib berishga imkon beradigan ixtiyoriy ikkinchi parametrni oladi. Ushbu parametr sifatida siz o'tishingiz mumkin quyidagi bayroqlar(ular iOS sinfida): ilova- faylni qo'shish rejimida ochadi; yedi- o'qish / yozishdan oldin faylning oxiriga o'tadi; ikkilik- faylni ikkilik rejimda ochadi (matn rejimi o'rniga); ichida- faylni o'qish rejimida ochadi (ifstream uchun sukut bo'yicha); tashqariga- faylni yozish rejimida ochadi (oddiy oqim uchun); trunk- agar u allaqachon mavjud bo'lsa, faylni o'chiradi. Foydalanish orqali bir vaqtning o'zida bir nechta bayroqlarni belgilashingiz mumkin. ifstream sukut bo'yicha iOS :: rejimida ishlaydi; ofstream sukut bo'yicha iOS :: out rejimida ishlaydi; fstream sukut bo'yicha iOS :: da OR iOS :: chiqish rejimida ishlaydi, ya'ni siz fayl mazmunini o'qish va faylga ma'lumotlarni yozishingiz mumkin. Keling, avval yaratilgan SomeText.txt fayliga ikkita qator qo'shadigan dastur yozamiz: #o'z ichiga oladi #o'z ichiga oladi // chiqish () #include dan foydalanish uchun int main () (std nom maydonidan foydalanish; // fstreamga ma'lumotlarimizni mavjud fayl ma'lumotlariga qo'shmoqchi ekanligimizni bildirish uchun iOS: ilova bayrog'ini o'tkazing, // biz faylni qayta yozmaymiz. Biz" t ios :: out bayrog'ini o'tkazish kerak bo'ladi, // chunki ofstream sukut bo'yicha iOS :: outstream outf rejimida ishlaydi ("SomeText.txt", iOS :: app); // Ma'lumot yozish uchun faylni ocha olmasak. if (! outf) (// Keyin quyidagi xato xabarini chiqaramiz va exit () cerr ni bajaramiz<< "Uh oh, SomeText.txt could not be opened for writing!" << endl; exit(1); } outf << "See line #3!" << endl; outf << "See line #4!" << endl; return 0; // Когда outf выйдет из области видимости, то деструктор класса ofstream автоматически закроет наш файл } #o'z ichiga oladi #o'z ichiga oladi // chiqish () dan foydalanish uchun #o'z ichiga oladi int main () std nom maydonidan foydalanish; // fstream-ga ma'lumotlarimizni mavjud fayl ma'lumotlariga qo'shmoqchi ekanligimizni bildirish uchun iOS: ilova bayrog'ini o'tkazing, // biz faylni qayta yozmoqchi emasmiz. Biz iOS :: bayrog'ini o'tkazishimiz shart emas, // chunki ofstream sukut bo'yicha iOS :: out rejimida ishlaydi ofstream outf ("SomeText.txt", iOS :: ilovasi); // Agar ma'lumotlarni yozish uchun faylni ocha olmasak agar (! outf) // Keyin biz quyidagi xato xabarini ko'rsatamiz va chiqishni bajaramiz () cerr<< "Oh, SomeText.txt faylini yozish uchun ochib bo'lmadi!"<< endl ; chiqish (1); Fayllar foydalanuvchiga katta hajmdagi ma'lumotlarni klaviaturadan yozmasdan to'g'ridan-to'g'ri diskdan o'qish imkonini beradi. Fayllarning ikkita asosiy turi mavjud: matn va ikkilik. Matn har qanday belgilardan iborat fayllar chaqiriladi. Ular satrlarga ajratilgan, ularning har biri " bilan tugaydi. qator oxiri"... Faylning oxiri "belgisi bilan ko'rsatilgan. fayl oxiri "... Har qanday matn muharriri yordamida ko'rish mumkin bo'lgan matn fayliga ma'lumot yozishda
Fayllar foydalanuvchiga katta hajmdagi ma'lumotlarni klaviaturadan yozmasdan to'g'ridan-to'g'ri diskdan o'qish imkonini beradi. Fayllarning ikkita asosiy turi mavjud: matn va ikkilik. Matn har qanday belgilardan iborat fayllar chaqiriladi. Ular satrlarga ajratilgan, ularning har biri " bilan tugaydi. qator oxiri"... Faylning oxiri "belgisi bilan ko'rsatilgan. fayl oxiri "... Har qanday matn muharriri yordamida ko'rish mumkin bo'lgan matn fayliga ma'lumot yozishda barcha ma'lumotlar belgilar turiga aylantiriladi va belgilar shaklida saqlanadi. V ikkilik fayllar, ma'lumotlar ma'lum o'lchamdagi bloklar shaklida o'qiladi va yoziladi, ular har qanday turdagi va tuzilishdagi ma'lumotlarni saqlashi mumkin. Fayllar bilan ishlash uchun maxsus ma'lumotlar turlari qo'llaniladi, chaqiriladi oqimlar. Oqim ifstream o'qish rejimida fayllar bilan ishlash uchun xizmat qiladi va oqimdan tashqari yozib olish rejimida. Fayllar bilan yozish va o'qish rejimida ishlash uchun oqimdan foydalaning fstream. C++ dasturlarida matnli fayllar bilan ishlashda kutubxonalarni kiritish kerak iostream va fstream. Matn fayliga ma'lumotlarni yozish uchun sizga quyidagilar kerak: tipdagi o‘zgaruvchini tavsiflang oqimdan tashqari. ochiq. ma'lumotni faylga chiqarish. faylni yopganingizga ishonch hosil qiling. Matn faylidan ma'lumotlarni o'qish uchun sizga quyidagilar kerak: tipdagi o‘zgaruvchini tavsiflang ifstream. funktsiyasi bilan faylni oching ochiq. fayldan ma'lumotni o'qish; har bir ma'lumot qismini o'qiyotganda, faylning oxiriga yetganligini tekshirish kerak. faylni yoping. Matn fayliga ma'lumot yozish Yuqorida aytib o'tilganidek, matnli fayl bilan ishlashni boshlash uchun siz turdagi o'zgaruvchini e'lon qilishingiz kerak. oqimdan tashqari... Masalan, bu kabi: oqimdan tashqari F; O'zgaruvchi yaratiladi F faylga ma'lumot yozish uchun. Keyingi qadam faylni yozish uchun ochishdir. Umuman olganda, oqimni ochish operatori quyidagicha ko'rinadi: F.ochiq("Fayl", rejimi); Bu yerda F sifatida tavsiflangan o'zgaruvchidir oqimdan tashqari, fayl- diskdagi to'liq fayl nomi, rejimi- ochilgan fayl bilan ishlash tartibi. Esda tutingki, faylning toʻliq nomini koʻrsatayotganda qoʻsh chiziqdan foydalanish kerak. Masalan, faylga kirish uchun accounts.txt, papkada joylashgan saytlar diskda D, dasturda quyidagilar ko'rsatilishi kerak: D: \\ saytlar \\ hisoblar.txt. Fayl quyidagi rejimlardan birida ochilishi mumkin: iOS :: ichida- faylni ma'lumotlarni o'qish rejimida ochish; rejim oqimlar uchun standart rejimdir ifstream; iOS :: chiqdi- faylni ma'lumotlarni yozish rejimida ochish (mavjud fayl haqidagi ma'lumotlar yo'q qilinadi); rejim oqimlar uchun standart rejimdir oqimdan tashqari; iOS :: ilovasi- faylni fayl oxirigacha ma'lumotlarni yozish rejimida ochish; ios :: yedim- allaqachon ochiq faylning oxiriga o'tish; ios :: trunc- faylni tozalang, xuddi shu narsa iOS :: chiqish rejimida sodir bo'ladi; ios :: nocreate- agar fayl mavjud bo'lmasa, uni ochish operatsiyasini bajarmang; ios :: noreplace- mavjud faylni ochmang. Tartib parametri yo'q bo'lishi mumkin, bu holda fayl ushbu oqim uchun standart rejimda ochiladi. O'zgaruvchida faylni (har qanday rejimda) muvaffaqiyatli ochgandan so'ng F saqlanadi rost, aks holda yolg'on... Bu faylni ochish operatsiyasining to'g'riligini tekshiradi. Faylni oching (masalan, faylni oling D: \\ saytlar \\ hisoblar.txt) quyidagi usullardan biri bilan yozib olish rejimida: Faylni yozish rejimida ochgandan so'ng, siz ma'lumot yozishingiz mumkin bo'lgan bo'sh fayl yaratiladi. Agar siz mavjud faylni qayta yozish rejimida ochmoqchi bo'lsangiz, qiymatdan foydalaning iOS :: ilovasi. Faylni yozish rejimida ochganingizdan so'ng, siz unga standart chiqish moslamasi o'rniga xuddi ekranga yozishingiz mumkin. cout ochiq fayl nomini ko'rsatishingiz kerak. Masalan, oqimga yozish uchun F o'zgaruvchan a, chiqish operatori bo'ladi: F< Oqimga ketma-ket chiqish uchun G o'zgaruvchilar b, c, d chiqish bayonoti quyidagicha bo'ladi: G< Oqim operator yordamida yopiladi: F.yopish (); Misol sifatida quyidagi muammoni ko'rib chiqing. Muammo 1 Matn faylini yarating
Download 47,54 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




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