Задача этой книги дать краткое и четкое изложение языка С++ в соответствии со стандар том iso/iec 14882. Она предназначена для студентов, изучающих язык «с нуля»



Download 2 Mb.
bet154/232
Sana29.03.2022
Hajmi2 Mb.
#516205
TuriЗадача
1   ...   150   151   152   153   154   155   156   157   ...   232
Bog'liq
Т. А. Павловская C C . Программирование на языке высокого уровня

ГЛАВА 10


Потоковые классы
Ïîòîn — ýòî aáñòðaêòíîå ïîíяòèå, îòíîñяùååñя ê ëþáîìó ïåðåíîñó äaííûõ îò èñòî÷íèêa ê ïðèåìíèêó. Ïîòîêè C++, â îòëè÷èå îò ôóíêöèé ââîäa/âûâîäa â ñòè- ëå C, îáåñïå÷èâaþò íaäåæíóþ ðaáîòó êaê ñî ñòaíäaðòíûìè, òaê è ñ îïðåäåëåí- íûìè ïîëüçîâaòåëåì òèïaìè äaííûõ, a òaêæå åäèíîîáðaçíûé è ïîíяòíûé ñèí- òaêñèñ.
×òåíèå äaííûõ èç ïîòîêa íaçûâaåòñя èçâëå÷åíèåì, âûâîä â ïîòîê — ïîìåùåíèåì, èëè ânëþ÷åíèåì. Ïîòîê îïðåäåëяåòñя êaê ïîñëåäîâaòåëüíîñòü áaéòîâ è íå çaâè- ñèò îò êîíêðåòíîãî óñòðîéñòâa, ñ êîòîðûì ïðîèçâîäèòñя îáìåí (îïåðaòèâíaя ïa- ìяòü, ôaéë ía äèñêå, êëaâèaòóða èëè ïðèíòåð). Îáìåí ñ ïîòîêîì äëя óâåëè÷åíèя ñêîðîñòè ïåðåäa÷è äaííûõ ïðîèçâîäèòñя, êaê ïðaâèëî, ÷åðåç ñïåöèaëüíóþ îá- ëañòü îïåðaòèâíîé ïaìяòè — áóôåð. Ôaêòè÷åñêaя ïåðåäa÷a äaííûõ âûïîëíяåòñя ïðè âûâîäå ïîñëå çaïîëíåíèя áóôåða, a ïðè ââîäå — åñëè áóôåð èñ÷åðïaí.
Ïî íaïðaâëåíèþ îáìåía ïîòîêè ìîæíî ðaçäåëèòü ía âõîäíûå (äaííûå ââîäяòñя â ïaìяòü), âûõîäíûå (äaííûå âûâîäяòñя èç ïaìяòè) è äâóíaïðaâëåííûå (äîïóñêaþ- ùèå êaê èçâëå÷åíèå, òaê è âêëþ÷åíèå).
Ïî âèäó óñòðîéñòâ, ñ êîòîðûìè ðaáîòaåò ïîòîê, ìîæíî ðaçäåëèòü ïîòîêè ía ñòaí- äaðòíûå, ôaéëîâûå è ñòðîêîâûå.
Còaíäaðòíûå ïîòînè ïðåäíaçía÷åíû äëя ïåðåäa÷è äaííûõ îò êëaâèaòóðû è ía ýêðaí äèñïëåя, ôañëîâûå ïîòînè — äëя îáìåía èíôîðìaöèåé ñ ôaéëaìè ía âíåø- íèõ íîñèòåëяõ äaííûõ (íaïðèìåð, ía ìaãíèòíîì äèñêå), a ñòðînîâûå ïîòînè — äëя ðaáîòû ñ ìaññèâaìè ñèìâîëîâ â îïåðaòèâíîé ïaìяòè.
Äëя ïîääåðæêè ïîòîêîâ áèáëèîòåêa C++ ñîäåðæèò èåðaðõèþ êëaññîâ, ïîñòðîåí- íóþ ía îñíîâå äâóõ áaçîâûõ êëaññîâ — iOs è streambuf. Êëaññ iOs ñîäåðæèò îáùèå äëя ââîäa è âûâîäa ïîëя è ìåòîäû, êëaññ streambuf îáåñïå÷èâaåò áóôåðèçaöèþ ïîòîêîâ è èõ âçaèìîäåéñòâèå ñ ôèçè÷åñêèìè óñòðîéñòâaìè. Îò ýòèõ êëaññîâ ía- ñëåäóåòñя êëaññ istream äëя âõîäíûõ ïîòîêîâ è Ostream — äëя âûõîäíûõ. Äâa ïîñëåäíèõ êëañña яâëяþòñя áaçîâûìè äëя êëañña iOstream, ðåaëèçóþùåãî äâóía- ïðaâëåííûå ïîòîêè. Íèæå â èåðaðõèè êëaññîâ ðañïîëaãaþòñя ôaéëîâûå è ñòðî- êîâûå ïîòîêè. Äaëåå ïåðå÷èñëåíû ÷añòî èñïîëüçóåìûå êëaññû ïîòîêîâ.

iOs — áaçîâûé êëaññ ïîòîêîâ; istream — êëaññ âõîäíûõ ïîòîêîâ; Ostream — êëaññ âûõîäíûõ ïîòîêîâ;


iOstream — êëaññ äâóíaïðaâëåííûõ ïîòîêîâ; istringstream — êëaññ âõîäíûõ ñòðîêîâûõ ïîòîêîâ; Ostringrstream — êëaññ âûõîäíûõ ñòðîêîâûõ ïîòîêîâ; stringstream — êëaññ äâóíaïðaâëåííûõ ñòðîêîâûõ ïîòîêîâ; ifstream — êëaññ âõîäíûõ ôaéëîâûõ ïîòîêîâ;
Ofstream — êëaññ âûõîäíûõ ôaéëîâûõ ïîòîêîâ;
fstream — êëaññ äâóíaïðaâëåííûõ ôaéëîâûõ ïîòîêîâ.
Îïèñaíèя êëaññîâ íaõîäяòñя â çaãîëîâî÷íûõ ôaéëaõ:
— áaçîâûé êëaññ ïîòîêîâ ââîäa/âûâîäa;
— ïðåäâaðèòåëüíûå îáúяâëåíèя ñðåäñòâ ââîäa/âûâîäa;
— øaáëîí ïîòîêa ââîäa;
— øaáëîí ïîòîêa âûâîäa;
— ñòaíäaðòíûå îáúåêòû è îïåðaöèè ñ ïîòîêaìè ââîäa/âûâîäa;
— ïîòîêè ââîäa/âûâîäa â ôaéëû;
— ïîòîêè ââîäa/âûâîäa â ñòðîêè;
— áóôåðèçaöèя ïîòîêîâ ââîäa/âûâîäa;
— ìaíèïóëяòîðû (î íèõ ðaññêaçûâaåòñя äaëåå, ñì. ñ. 271).
Ïîäêëþ÷åíèå ê ïðîãðaììå ôaéëîâ è aâòîìaòè÷åñêè ïîäêëþ-
÷aåò è ôaéë , òaê êaê îí яâëяåòñя äëя íèõ áaçîâûì.
Îñíîâíûì ïðåèìóùåñòâîì ïîòîêîâ ïî ñðaâíåíèþ ñ ôóíêöèяìè ââîäa/âûâîäa, óíañëåäîâaííûìè èç áèáëèîòåêè C, яâëяåòñя êîíòðîëü òèïîâ, a òaêæå ðañøèðяå- ìîñòü, òî åñòü âîçìîæíîñòü ðaáîòaòü ñ òèïaìè, îïðåäåëåííûìè ïîëüçîâaòåëåì. Äëя ýòîãî òðåáóåòñя ïåðåîïðåäåëèòü îïåðaöèè ïîòîêîâ (îá ýòîì ðaññêaçûâaåòñя â ðaçäåëå «Ïîòîêè è òèïû, îïðåäåëåííûìè ïîëüçîâaòåëåì», ñ. 284).
Êðîìå òîãî, ïîòîêè ìîãóò ðaáîòaòü ñ ðañøèðåííûì íaáîðîì ñèìâîëîâ wChar_t. Äëя ýòîãî èñïîëüçóþòñя êëaññû wistream, wOstream, wOfstream è ò. ä.1. Ê íåäîñòaò- êaì ïîòîêîâ ìîæíî îòíåñòè ñíèæåíèå áûñòðîäåéñòâèя ïðîãðaììû, êîòîðîå â ça- âèñèìîñòè îò ðåaëèçaöèè êîìïèëяòîða ìîæåò áûòü âåñüìa çía÷èòåëüíûì.


1 Ía ñaìîì äåëå ïîòîêè ðåaëèçîâaíû â áèáëèîòåêå ñ ïîìîùüþ øaáëîíîâ, ïaðaìåòðîì êî- òîðûõ яâëяåòñя òèï ñèìâîëa. Èìåía êëaññîâ äëя ïaðaìåòðîâ Char è wChar_t îïðåäåëåíû ñ ïîìîùüþ typedef.



Download 2 Mb.

Do'stlaringiz bilan baham:
1   ...   150   151   152   153   154   155   156   157   ...   232




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